Activer les actions de communication pour les contacts

Les annotations de contact décrivent les actions de communication prises en charge par une application pour un contact, telles que l’affichage d’un profil, de l’envoi de messages ou d’un appel. Cet article explique comment déclarer ces fonctionnalités et comment Windows ouvre le contact approprié dans votre application.

Avant de commencer, ajoutez vos contacts à Windows.

Déclarer les opérations de communication prises en charge

Les applications peuvent déclarer les fonctionnalités de communication prises en charge pour un contact à l’aide de la propriété SupportedOperations sur ContactAnnotation.

La SupportedOperations propriété spécifie les types d’actions de communication prises en charge par l’application pour interagir avec un contact. Ces opérations sont définies par l’énumération ContactAnnotationOperations .

Comme ContactAnnotationOperations est une énumération d’indicateurs, plusieurs opérations peuvent être combinées à l’aide de l’opérateur binaire OU (|). Cela permet aux applications d’indiquer toutes les fonctionnalités de communication prises en charge pour un contact dans une seule annotation. Pour plus d’informations sur cette propriété, consultez la référence d’API pour ContactAnnotation.SupportedOperations.

L’exemple suivant montre comment déclarer les opérations de communication prises en charge pour un contact.

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

Dans cet exemple, l’annotation déclare à Windows que l’application prend en charge l’affichage du profil de contact, l’envoi de messages, l’exécution d’appels audio ou vidéo et l’accès aux mises à jour du flux social pour le contact spécifié.

Les applications doivent configurer les opérations compatibles pour représenter avec précision les fonctionnalités d’interaction et de communication disponibles pour le contact au sein de l’application.

Traiter l’activation de la communication

Lorsque les utilisateurs sélectionnent une action de communication à partir d'une surface Windows, Windows lance votre application à l'aide d'un protocole URI inscrit et transmet le RemoteId du contact à l'application.

Les schémas d’URI suivants correspondent aux ContactAnnotationOperations valeurs.

Operation Schéma d’URI Indicateur SupportedOperations
Call ms-voip-call: AudioCall
Video ms-voip-video: VideoCall
Message ms-ipmessaging: Message
Profile ms-contact-profile: ContactProfile

Par exemple, si une application déclare AudioCall | VideoCall, Windows peut activer l’application avec un URI tel que :

ms-voip-video:<RemoteId>

<RemoteId> est la même valeur RemoteId que celle que vous avez stockée dans le ContactAnnotation. Utilisez-le pour localiser l’utilisateur ou la conversation correspondant dans votre application et démarrer l’expérience demandée.

Inscrivez des schémas d’URI uniquement pour les opérations que votre application prend en charge. Windows affiche une action de communication uniquement lorsque l’enregistrement du protocole correspondant est disponible.

Inscrire les schémas d’URI

Déclarez chaque schéma d’URI dans le manifeste du package en tant qu’extension windows.protocol . L’exemple suivant enregistre des protocoles pour l’affichage de profil, la messagerie, l’appel audio et l’appel vidéo.

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