Включить действия связи для контактов

Аннотации контакта описывают действия связи, которые приложение поддерживает для контакта, например просмотр профиля, обмен сообщениями или вызов. В этой статье показано, как объявить эти возможности и как Windows открывает соответствующий контакт в приложении.

Перед началом добавьте свои контакты в Windows.

Объявите поддерживаемые операции обмена данными

Приложения могут объявлять возможности связи, поддерживаемые контактом, с помощью свойства SupportedOperations в ContactAnnotation.

Свойство SupportedOperations задает типы действий связи, поддерживаемых приложением для взаимодействия с контактом. Эти операции определяются перечислением ContactAnnotationOperations .

Так как ContactAnnotationOperations это перечисление флагов, можно объединить несколько операций с помощью двоичного оператора OR (|). Это позволяет приложениям указывать все поддерживаемые возможности связи для контакта в одной аннотации. Дополнительные сведения об этом свойстве см. в справочнике по API для ContactAnnotation.SupportedOperations.

В следующем примере показано, как объявить поддерживаемые операции обмена данными для контакта.

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

В этом примере аннотация сообщает Windows, что приложение поддерживает просмотр профиля контакта, отправку сообщений, выполнение аудио- или видеозвонков и доступ к обновлениям социального канала для указанного контакта.

Приложения должны задать поддерживаемые операции, чтобы точно представлять возможности взаимодействия и связи, доступные для контактной записи в приложении.

Обработать активацию соединения

Когда пользователи выбирают действие связи из области Windows, Windows запускает приложение с помощью зарегистрированного протокола URI и передает приложению данные контакта RemoteId.

Следующие схемы URI соответствуют значениям схемы ContactAnnotationOperations.

Operation Схема URI ФлагSupportedOperations
Call ms-voip-call: AudioCall
Видео ms-voip-video: VideoCall
Message ms-ipmessaging: Message
Profile ms-contact-profile: ContactProfile

Например, если приложение объявляетAudioCall | VideoCall, Windows может активировать приложение с помощью URI, например:

ms-voip-video:<RemoteId>

<RemoteId> — это то же значение RemoteId, которое вы сохранили на ContactAnnotation. Используйте его, чтобы найти соответствующего пользователя или беседу в приложении и запустить запрошенный сценарий.

Регистрируйте схемы URI только для операций, поддерживаемых приложением. Windows отображает действие связи только в том случае, если доступна регистрация соответствующего протокола.

Зарегистрируйте схемы URI

Объявите каждую схему URI в манифесте пакета как расширение windows.protocol. В следующем примере регистрируются протоколы для просмотра профилей, обмена сообщениями, аудиозвонка и видеозвонка.

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