連絡先のコミュニケーション アクションを有効にする

連絡先の注釈では、プロファイルの表示、メッセージング、通話など、アプリが連絡先に対してサポートする通信アクションについて説明します。 この記事では、これらの機能を宣言する方法と、Windows がご使用のアプリで関連する連絡先を開く方法について説明します。

開始する前に、連絡先をWindowsに追加してください。

サポートされている通信操作を宣言する

アプリでは、ContactAnnotation の SupportedOperations プロパティを使用して、連絡先でサポートされている通信機能を宣言できます。

SupportedOperations プロパティは、アプリが連絡先とやり取りするためにサポートする通信アクションの種類を指定します。 これらの操作は、 ContactAnnotationOperations 列挙型によって定義されます。

ContactAnnotationOperationsはフラグ列挙であるため、バイナリ OR (|) 演算子を使用して複数の操作を組み合わせることができます。 これにより、アプリは、連絡先に対してサポートされているすべての通信機能を 1 つの注釈で示すことができます。 このプロパティの詳細については、 ContactAnnotation.SupportedOperations の API リファレンスを参照してください。

次の例は、連絡先に対してサポートされている通信操作を宣言する方法を示しています。

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
Video ms-voip-video: VideoCall
Message ms-ipmessaging: Message
プロフィール ms-contact-profile: ContactProfile

たとえば、アプリが URI ハンドラー 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>