Kommunikációs műveletek engedélyezése névjegyekhez

A névjegy-annotációk azokat a kommunikációs műveleteket írják le, amelyeket az alkalmazás támogat egy partner számára, például profil megtekintése, üzenetküldés vagy hívás. Ez a cikk bemutatja, hogyan deklarálhatja ezeket a képességeket, és hogy a Windows hogyan nyitja meg a megfelelő névjegyet az alkalmazásban.

Mielőtt hozzákezd, adja hozzá névjegyeit a Windowshoz.

Támogatott kommunikációs műveletek deklarálása

Az alkalmazások a ContactAnnotationSupportedOperations tulajdonságával deklarálhatják a névjegyhez támogatott kommunikációs képességeket.

A SupportedOperations tulajdonság meghatározza azokat a kommunikációs műveleteket, amelyeket az alkalmazás támogat az egy partnerrel való interakcióhoz. Ezeket a műveleteket a ContactAnnotationOperations enumeráció határozza meg.

Mivel ContactAnnotationOperations egy jelzőfelsorolás, több művelet is kombinálható a bináris VAGY (|) operátorral. Ez lehetővé teszi, hogy az alkalmazások egyetlen megjegyzésben jelezzék a partner összes támogatott kommunikációs képességét. A tulajdonságról további információkért lásd a ContactAnnotation.SupportedOperations API-referenciáját.

Az alábbi példa bemutatja, hogyan deklarálhatók a támogatott kommunikációs műveletek egy kapcsolathoz.

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

Ebben a példában a jegyzet jelzi a Windowsnak, hogy az alkalmazás támogatja a partnerprofil megtekintését, az üzenetek küldését, a hang- vagy videohívásokat, valamint a megadott partner közösségi hírcsatorna-frissítéseinek elérését.

Az alkalmazásoknak úgy kell beállítaniuk a támogatott műveleteket, hogy pontosan tükrözzék a névjegyhez elérhető interakciós és kommunikációs képességeket az alkalmazáson belül.

Kommunikációkezelés aktiválása

Amikor a felhasználók egy kommunikációs műveletet választanak egy Windows felületről, Windows elindítja az alkalmazást egy regisztrált URI protokoll használatával, és átadja az alkalmazásnak a névjegy RemoteId-jét.

Az alábbi URI-sémák a ContactAnnotationOperations értékeknek felelnek meg.

Operation URI-séma SupportedOperations zászló
Call ms-voip-call: AudioCall
Video ms-voip-video: VideoCall
Message ms-ipmessaging: Message
Profile ms-contact-profile: ContactProfile

Ha például egy alkalmazás deklarálja a AudioCall | VideoCall elemet, a Windows aktiválhatja az alkalmazást egy URI-val, például:

ms-voip-video:<RemoteId>

<RemoteId> ugyanaz az RemoteId érték, amelyet a ContactAnnotation-n tárolt. Ezzel megkeresheti a megfelelő felhasználót vagy beszélgetést az alkalmazásban, és elindíthatja a kért élményt.

Az URI-sémákat csak az alkalmazás által támogatott műveletekhez regisztrálhatja. Windows csak akkor jelenít meg kommunikációs műveletet, ha elérhető a megfelelő protokollregisztráció.

Az URI-sémák regisztrálása

Deklarálja a csomagjegyzékben szereplő URI-sémákat bővítményként windows.protocol . Az alábbi példa a profilmegtekintési, üzenetküldési, hanghívási és videohívási protokollokat regisztrálja.

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