Aktivieren von Kommunikationsaktionen für Kontakte

Anmerkungen zu Kontakten beschreiben die Kommunikationsaktionen, die eine App für einen Kontakt unterstützt, z. B. das Anzeigen eines Profils, das Senden von Nachrichten oder Anrufen. In diesem Artikel wird erläutert, wie Sie diese Funktionen deklarieren und wie Windows den relevanten Kontakt in Ihrer App öffnet.

Bevor Sie beginnen, fügen Sie Ihre Kontakte zu Windows hinzu.

Unterstützte Kommunikationsvorgänge deklarieren

Apps können die für einen Kontakt unterstützten Kommunikationsfunktionen mithilfe der SupportedOperations-Eigenschaft in ContactAnnotation deklarieren.

Die SupportedOperations Eigenschaft gibt die Arten von Kommunikationsaktionen an, die von der App für die Interaktion mit einem Kontakt unterstützt werden. Diese Vorgänge werden durch die ContactAnnotationOperations-Aufzählung definiert.

Da ContactAnnotationOperations es sich um eine Flags-Aufzählung handelt, können mehrere Vorgänge mit dem binären OR(|)-Operator kombiniert werden. Auf diese Weise können Apps alle unterstützten Kommunikationsfunktionen für einen Kontakt in einer einzigen Anmerkung angeben. Weitere Informationen zu dieser Eigenschaft finden Sie in der API-Referenz für ContactAnnotation.SupportedOperations.

Das folgende Beispiel zeigt, wie die unterstützten Kommunikationsvorgänge für einen Kontakt deklariert werden.

var annotation = new ContactAnnotation
{
    ContactId = contact.Id,
    RemoteId = contact.RemoteId,
    SupportedOperations =
        ContactAnnotationOperations.ContactProfile |
        ContactAnnotationOperations.Message |
        ContactAnnotationOperations.AudioCall |
        ContactAnnotationOperations.VideoCall |
        ContactAnnotationOperations.SocialFeeds
};

await this.contactAnnotationList.TrySaveAnnotationAsync(annotation);

In diesem Beispiel deklariert die Anmerkung Windows, dass die App das Anzeigen des Kontaktprofils, das Senden von Nachrichten, das Tätigen von Audio- oder Videoanrufen und den Zugriff auf Updates für soziale Netzwerke für den angegebenen Kontakt unterstützt.

Apps sollten die unterstützten Operationen so festlegen, dass sie die Interaktions- und Kommunikationsfunktionen, die für den Kontakt in der App verfügbar sind, genau darstellen.

Kommunikationsaktivierung verarbeiten

Wenn Benutzer eine Kommunikationsaktion auf einer Windows-Oberfläche auswählen, startet Windows Ihre App mithilfe eines registrierten URI-Protokolls und übergibt der App die RemoteId des Kontakts.

Die folgenden URI-Schemas entsprechen den ContactAnnotationOperations-Werten.

Operation URI-Schema SupportedOperations Markierung
Call ms-voip-call: AudioCall
-Video ms-voip-video: VideoCall
Message ms-ipmessaging: Message
Profile ms-contact-profile: ContactProfile

Wenn eine App z. B. AudioCall | VideoCall deklariert, kann Windows die App mit einem URI aktivieren, z. B. so etwas wie:

ms-voip-video:<RemoteId>

<RemoteId> ist derselbe RemoteId Wert, den Sie auf dem ContactAnnotation gespeichert haben. Verwenden Sie es, um den entsprechenden Benutzer oder die entsprechende Unterhaltung in Ihrer App zu suchen und den angeforderten Vorgang zu starten.

Registrieren Sie URI-Schemas nur für Vorgänge, die Ihre App unterstützt. Windows zeigt eine Kommunikationsaktion nur an, wenn die entsprechende Protokollregistrierung verfügbar ist.

URI-Schemas registrieren

Deklarieren Sie jedes URI-Schema im Paketmanifest als windows.protocol Erweiterung. Im folgenden Beispiel werden Protokolle zum Anzeigen von Profilen, zum Senden von Nachrichten, für Audioanrufe und Videoanrufe registriert.

<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>