Verbinden der App mit Aktionen auf einer Visitenkarte
Ihre App kann neben Aktionen auf einer Visitenkarte oder einer Minikontaktkarte angezeigt werden. Benutzer können Ihre App auswählen, um eine Aktion auszuführen, z. B. eine Profilseite zu öffnen, einen Anruf zu tätigen oder eine Nachricht zu senden.
Suchen Sie zunächst vorhandene Kontakte, oder erstellen Sie neue Kontakte. Erstellen Sie als Nächstes eine Anmerkung und einige Paketmanifesteinträge, um zu beschreiben, welche Aktionen Ihre App unterstützt. Schreiben Sie dann Code, der die Aktionen ausführt.
Ein vollständiges Beispiel finden Sie unter "Beispiel für die Visitenkartenintegration".
Suchen oder Erstellen eines Kontakts
Wenn Ihre App personen bei der Verbindung mit anderen personen hilft, suchen Sie nach Windows nach Kontakten, und kommentieren Sie sie dann. Wenn Ihre App Kontakte verwaltet, können Sie sie einer Windows-Kontaktliste hinzufügen und diese dann kommentieren.
Suchen eines Kontakts
Suchen Sie Kontakte mithilfe eines Namens, einer E-Mail-Adresse oder einer Telefonnummer.
ContactStore contactStore = await ContactManager.RequestStoreAsync();
IReadOnlyList<Contact> contacts = null;
contacts = await contactStore.FindContactsAsync(emailAddress);
Contact contact = contacts[0];
Einen Kontakt erstellen
Wenn Ihre App eher wie ein Adressbuch aussieht, erstellen Sie Kontakte, und fügen Sie sie dann einer Kontaktliste hinzu.
Contact contact = new Contact();
contact.FirstName = "TestContact";
ContactEmail email = new ContactEmail();
email.Address = "TestContact@contoso.com";
email.Kind = ContactEmailKind.Other;
contact.Emails.Add(email);
ContactPhone phone = new ContactPhone();
phone.Number = "4255550101";
phone.Kind = ContactPhoneKind.Mobile;
contact.Phones.Add(phone);
ContactStore store = await
ContactManager.RequestStoreAsync(ContactStoreAccessType.AppContactsReadWrite);
ContactList contactList;
IReadOnlyList<ContactList> contactLists = await store.FindContactListsAsync();
if (0 == contactLists.Count)
contactList = await store.CreateContactListAsync("TestContactList");
else
contactList = contactLists[0];
await contactList.SaveContactAsync(contact);
Markieren Sie jeden Kontakt mit einer Anmerkung.
Markieren Sie jeden Kontakt mit einer Liste von Aktionen (Vorgängen), die Ihre App ausführen kann (z. B. Videoanrufe und Messaging).
Ordnen Sie dann die ID eines Kontakts einer ID zu, die Ihre App intern verwendet, um diesen Benutzer zu identifizieren.
ContactAnnotationStore annotationStore = await
ContactManager.RequestAnnotationStoreAsync(ContactAnnotationStoreAccessType.AppAnnotationsReadWrite);
ContactAnnotationList annotationList;
IReadOnlyList<ContactAnnotationList> annotationLists = await annotationStore.FindAnnotationListsAsync();
if (0 == annotationLists.Count)
annotationList = await annotationStore.CreateAnnotationListAsync();
else
annotationList = annotationLists[0];
ContactAnnotation annotation = new ContactAnnotation();
annotation.ContactId = contact.Id;
annotation.RemoteId = "user22";
annotation.SupportedOperations = ContactAnnotationOperations.Message |
ContactAnnotationOperations.AudioCall |
ContactAnnotationOperations.VideoCall |
ContactAnnotationOperations.ContactProfile;
await annotationList.TrySaveAnnotationAsync(annotation);
Registrieren für jeden Vorgang
Registrieren Sie im Paketmanifest für jeden Vorgang, den Sie in Ihrer Anmerkung aufgelistet haben.
Registrieren Sie sich, indem Sie dem Extensions
Element des Manifests Protokollhandler hinzufügen.
<Extensions>
<uap:Extension Category="windows.protocol">
<uap:Protocol Name="ms-contact-profile">
<uap:DisplayName>TestProfileApp</uap:DisplayName>
</uap:Protocol>
</uap:Extension>
<uap:Extension Category="windows.protocol">
<uap:Protocol Name="ms-ipmessaging">
<uap:DisplayName>TestMsgApp</uap:DisplayName>
</uap:Protocol>
</uap:Extension>
<uap:Extension Category="windows.protocol">
<uap:Protocol Name="ms-voip-video">
<uap:DisplayName>TestVideoApp</uap:DisplayName>
</uap:Protocol>
</uap:Extension>
<uap:Extension Category="windows.protocol">
<uap:Protocol Name="ms-voip-call">
<uap:DisplayName>TestCallApp</uap:DisplayName>
</uap:Protocol>
</uap:Extension>
</Extensions>
Sie können diese auch auf der Registerkarte "Deklarationen " des Manifest-Designers in Visual Studio hinzufügen.
Suchen Ihrer App neben Aktionen auf einer Visitenkarte
Öffnen Sie die Personen-App. Ihre App wird neben jeder Aktion (Operation) angezeigt, die Sie in Ihrer Anmerkung und im Paketmanifest angegeben haben.
Wenn Benutzer Ihre App für eine Aktion auswählen, wird sie beim nächsten Öffnen einer Visitenkarte als Standard-App für diese Aktion angezeigt.
Suchen Ihrer App neben Aktionen auf einer Minikontaktkarte
In Minikontaktkarten wird Ihre App auf Registerkarten angezeigt, die Aktionen darstellen.
Apps wie die Mail-App öffnen Minikontaktkarten. Ihre App kann sie ebenfalls öffnen. Dieser Code zeigt Ihnen, wie Das geht.
public async void OpenContactCard(object sender, RoutedEventArgs e)
{
// Get the selection rect of the button pressed to show contact card.
FrameworkElement element = (FrameworkElement)sender;
Windows.UI.Xaml.Media.GeneralTransform buttonTransform = element.TransformToVisual(null);
Windows.Foundation.Point point = buttonTransform.TransformPoint(new Windows.Foundation.Point());
Windows.Foundation.Rect rect =
new Windows.Foundation.Rect(point, new Windows.Foundation.Size(element.ActualWidth, element.ActualHeight));
// helper method to find a contact just for illustrative purposes.
Contact contact = await findContact("contoso@contoso.com");
ContactManager.ShowContactCard(contact, rect, Windows.UI.Popups.Placement.Default);
}
Weitere Beispiele mit Minikontaktkarten finden Sie im Beispiel "Visitenkarten".
Genau wie bei der Visitenkarte merkt sich jede Registerkarte die App, die der Benutzer zuletzt verwendet hat, damit sie einfach zu Ihrer App zurückkehren können.
Ausführen von Vorgängen, wenn Benutzer Ihre App auf einer Visitenkarte auswählen
Überschreiben Sie die Application.OnActivated-Methode in Ihrer App.cs-Datei , und navigieren Sie zu einer Seite in Ihrer App. Das Beispiel für die Visitenkartenintegration zeigt eine Möglichkeit, dies zu tun.
Überschreiben Sie in der CodeBehind-Datei der Seite die Page.OnNavigatedTo-Methode . Die Visitenkarte übergibt diese Methode den Namen des Vorgangs und die ID des Benutzers.
Informationen zum Starten eines Video- oder Audioanrufs finden Sie in diesem Beispiel: VoIP-Beispiel. Sie finden die vollständige API im WIndows.ApplicationModel.Calls-Namespace .
Informationen zur Erleichterung von Nachrichten finden Sie im Windows.ApplicationModel.Chat-Namespace .
Sie können auch eine andere App starten. Das macht dieser Code.
protected override async void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
var args = e.Parameter as ProtocolActivatedEventArgs;
// Display the result of the protocol activation if we got here as a result of being activated for a protocol.
if (args != null)
{
var options = new Windows.System.LauncherOptions();
options.DisplayApplicationPicker = true;
options.TargetApplicationPackageFamilyName = "ContosoApp";
string launchString = args.uri.Scheme + ":" + args.uri.Query;
var launchUri = new Uri(launchString);
await Windows.System.Launcher.LaunchUriAsync(launchUri, options);
}
}
Die args.uri.scheme
Eigenschaft enthält den Namen des Vorgangs, und die args.uri.Query
Eigenschaft enthält die ID des Benutzers.