Abilitare le azioni di comunicazione per i contatti

Le annotazioni contatto descrivono le azioni di comunicazione supportate da un'app per un contatto, ad esempio la visualizzazione di un profilo, la messaggistica o la chiamata. Questo articolo illustra come dichiarare tali funzionalità e come Windows apre il contatto pertinente nella tua app.

Prima di iniziare, aggiungi i tuoi contatti in Windows.

Dichiarare le operazioni di comunicazione supportate

Le app possono dichiarare le funzionalità di comunicazione supportate per un contatto usando la proprietà SupportedOperations in ContactAnnotation.

La SupportedOperations proprietà specifica i tipi di azioni di comunicazione supportate dall'app per interagire con un contatto. Queste operazioni vengono definite dall'enumerazione ContactAnnotationOperations .

Poiché ContactAnnotationOperations è un'enumerazione flag, è possibile combinare più operazioni usando l'operatore OR binario (|). Ciò consente alle app di indicare tutte le funzionalità di comunicazione supportate per un contatto in un'unica annotazione. Per altre informazioni su questa proprietà, vedere le informazioni di riferimento sulle API per ContactAnnotation.SupportedOperations.

Nell'esempio seguente viene illustrato come dichiarare le operazioni di comunicazione supportate per un contatto.

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 questo esempio, l'annotazione dichiara a Windows che l'app supporta la visualizzazione del profilo di contatto, l'invio di messaggi, l'esecuzione di chiamate audio o video e l'accesso agli aggiornamenti del feed di social networking per il contatto specificato.

Le app devono impostare le operazioni supportate per rappresentare in modo accurato le funzionalità di interazione e comunicazione disponibili per il contatto all'interno dell'app.

Gestione dell'attivazione della comunicazione

Quando gli utenti selezionano un'azione di comunicazione da una superficie di Windows, Windows avvia l'app usando un protocollo URI registrato e passa all'app il RemoteId del contatto.

Gli schemi URI seguenti corrispondono ai ContactAnnotationOperations valori.

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

Ad esempio, se un'app dichiara AudioCall | VideoCall, Windows può attivare l'app con un URI, ad esempio:

ms-voip-video:<RemoteId>

<RemoteId> è lo stesso RemoteId valore che hai archiviato su ContactAnnotation. Usalo per individuare l'utente o la conversazione corrispondente nell'app e avviare l'esperienza richiesta.

Registrare gli schemi URI solo per le operazioni supportate dall'app. Windows visualizza un'azione di comunicazione solo quando è disponibile la registrazione del protocollo corrispondente.

Registrare gli schemi URI

Dichiarare ogni schema URI nel manifesto del pacchetto come un'estensione windows.protocol. L'esempio seguente registra i protocolli per la visualizzazione del profilo, la messaggistica, le chiamate audio e le videochiamate.

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