マイ連絡先の共有My People sharing

マイ連絡先の機能を使うと、ユーザーは連絡先をタスク バーにピン留めして、どのアプリケーションを使って接続している場合でも、Windows のどこからでも容易に連絡を取ることができます。The My People feature allows users to pin contacts to their taskbar, enabling them to stay in touch easily from anywhere in Windows, no matter what application they are connected by. ユーザーは、ファイルをエクスプローラーからピン留めされたマイ連絡先にドラッグして、ピン留めされた連絡先とコンテンツを共有できるようになりました。Now users can share content with their pinned contacts by dragging files from the File Explorer to their My People pin. 標準の共有チャーム経由で、Windows の連絡先ストアの任意の連絡先を共有できるようになりました。They can also share to any contacts in the Windows contact store via the standard share charm. 作成したアプリケーションをマイ連絡先の共有のターゲットとするための方法について説明します。Keep reading to learn how to enable your application as a My People sharing target.

マイ連絡先の共有パネル

必要条件Requirements

概要Overview

アプリケーションをマイ連絡先の共有ターゲットとするためには、次の 3 つの手順を行う必要があります。There are three steps you must take to enable your application as a My People sharing target:

  1. アプリケーション マニフェストで shareTarget アクティブ化コントラクトのサポートを宣言します。Declare support for the shareTarget activation contract in your application manifest.
  2. ユーザーがアプリを使用して共有できる連絡先に注釈を付けます。Annotate the contacts that the users can share to using your app.
  3. アプリケーションの複数インスタンスの同時実行をサポートします。Support multiple instances of the application running at the same time. ユーザーは、他のユーザーと共有するためにアプリケーションを使用しながら、アプリケーションの通常版を操作できる必要があります。Users must be able to interact with a full version of your application while also using it to share with others. ユーザーは複数の共有ウィンドウで同時に使用できます。They may use it in multiple share windows at once. これをサポートするには、アプリケーションが複数のビューを同時に実行できる必要があります。To support this, your application needs to be able to run multiple views simultaneously. これを行う方法については、「"アプリの複数のビューの表示」の記事をご覧ください。To learn how to do this, see the article "show multiple views for an app".

これを行うと、アプリケーションがマイ連絡先の共有ウィンドウで共有ターゲットに表示されます。これは次の 2 つの方法で起動できます。When you’ve done this, your application will appear as a share target in the My People share window, which can be launched in two ways:

  1. 共有チャームで連絡先を選択します。A contact is chosen via the share charm.
  2. タスク バーにピン留めされた連絡先にファイルをドラッグ アンド ドロップします。File(s) are dragged and dropped on a contact pinned to the taskbar.

共有コントラクトのサポートを宣言するDeclaring support for the share contract

アプリケーションでの共有ターゲットのサポートを宣言するには、まず Visual Studio でアプリケーションを開きます。To declare support for your application as a share target, first open your application in Visual Studio. ソリューション エクスプローラーPackage.appxmanifest を右クリックして、[プログラムから開く] を選択します。From the Solution Explorer, right click Package.appxmanifest and select Open With. メニューから [ XML (テキスト) エディター ] を選択し、[ OK] をクリックします。From the menu, select XML (Text) Editor and click OK. マニフェストを次のように変更します。Then, make the following changes to the manifest:

変更前Before

<Applications>
    <Application Id="MyApp"
      Executable="$targetnametoken$.exe"
      EntryPoint="My.App">
    </Application>
</Applications>

変更後After

<Applications>
    <Application Id="MyApp"
      Executable="$targetnametoken$.exe"
      EntryPoint="My.App">
        <Extensions>
            <uap:Extension Category="windows.shareTarget">
                <uap:ShareTarget Description="Share with MyApp">
                    <uap:SupportedFileTypes>
                        <uap:SupportsAnyFileType/>
                    </uap:SupportedFileTypes>
                    <uap:DataFormat>Text</uap:DataFormat>
                    <uap:DataFormat>Bitmap</uap:DataFormat>
                    <uap:DataFormat>Html</uap:DataFormat>
                    <uap:DataFormat>StorageItems</uap:DataFormat>
                    <uap:DataFormat>URI</uap:DataFormat>
                </uap:ShareTarget>
            </uap:Extension>
         </Extensions>
    </Application>
</Applications>

このコードはすべてのファイルとデータの形式のサポートを追加しますが、サポートするファイルの種類やデータの形式を指定することを選ぶこともできます (詳しくは、「ShareTarget クラスのドキュメント」をご覧ください)。This code adds support for all files and data formats, but you can choose to specify what files types and data formats are supported (see ShareTarget class documentation for more details).

連絡先に注釈を付けるAnnotating contacts

マイ連絡先の共有ウィンドウでアプリケーションを連絡先の共有ターゲットとして表示するには、それを Windows 連絡先ストアに書き込む必要があります。To allow the My People share window to show your application as a share target for your contacts, you need to write them to the Windows contact store. 連絡先を書き込む方法については、「連絡先カードの統合のサンプル」をご覧ください。To learn how to write contacts, see the Contact Card Integration sample.

連絡先を共有する場合にアプリケーションがマイ連絡先の共有ターゲットとして表示されるためには、連絡先に注釈を書き込む必要があります。For your application to appear as a My People share target when sharing to a contact, it must write an annotation to that contact. 注釈は、連絡先に関連付けられた、アプリケーションからのデータの一部です。Annotations are pieces of data from your application that are associated with a contact. 注釈は、必要なビューに対応する、アクティブ化可能なクラスを、ProviderProperties メンバーに含む必要があります。また Share 操作のサポートを宣言する必要があります。The annotation must contain the activatable class corresponding to your desired view in its ProviderProperties member, and declare support for the Share operation.

アプリが実行されている任意の時点で連絡先に注釈を付けることができますが、一般には、連絡先がWindows 連絡先ストアに追加されたらすぐに連絡先に注釈を付けるようにします。You can annotate contacts at any point while your app is running, but generally you should annotate contacts as soon as they are added to the Windows contact store.

if (ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 5))
{
    // Create a new contact annotation
    ContactAnnotation annotation = new ContactAnnotation();
    annotation.ContactId = myContact.Id;

    // Add appId and Share support to the annotation
    String appId = "MyApp_vqvv5s4y3scbg!App";
    annotation.ProviderProperties.Add("ContactShareAppID", appId);
    annotation.SupportedOperations = ContactAnnotationOperations::Share;

    // Save annotation to contact annotation list
    // Windows.ApplicationModel.Contacts.ContactAnnotationList 
    await contactAnnotationList.TrySaveAnnotationAsync(annotation);
}

“appId” はパッケージ ファミリ名の最後に ‘!’ とThe “appId” is the Package Family Name, followed by ‘!’ アクティブ化可能なクラス ID を付けたものです。and the Activatable Class ID. パッケージ ファミリ名を見つけるには、既定のエディターを使って Package.appxmanifest を開き、"Packaging" タブを検索します。ここで、"App" は、共有ターゲット ビューに対応する、アクティブ化可能なクラスです。To find your Package Family Name, open Package.appxmanifest using the default editor, and look in the “Packaging” tab. Here, “App” is the Activatable Class corresponding to the Share Target view.

マイ連絡先の共有ターゲットとして実行するRunning as a My People share target

最後に、アプリを実行するには、共有ターゲットのアクティブ化を行うアプリのメイン クラスで OnShareTargetActivated メソッドを上書きします。Finally, to run the app, override the OnShareTargetActivated method in your app’s main class to handle the share target activation. ShareTargetActivatedEventArgs.ShareOperation.Contacts プロパティは、共有される連絡先を含むか、または (マイ連絡先の共有ではない) 標準の共有操作の場合には、空となります。The ShareTargetActivatedEventArgs.ShareOperation.Contacts property will contain the contact(s) that are being shared to, or will be empty if this is a standard share operation (not a My People share).

protected override void OnShareTargetActivated(ShareTargetActivatedEventArgs args)
{
    bool isPeopleShare = false;
    if (ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 5))
    {
        // Make sure the current OS version includes the My People feature before
        // accessing the ShareOperation.Contacts property
        isPeopleShare = (args.ShareOperation.Contacts.Count > 0);
    }

    if (isPeopleShare)
    {
        // Show share UI for MyPeople contact(s)
    }
    else
    {
        // Show standard share UI for unpinned contacts
    }
}

関連項目See also