Публикации близких людей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

Вам необходимо выполнить три действия, что сделать ваше приложением допустимой целью для публикации с помощью функции "Близкие люди".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".

После этого приложение станет целью общего доступа в окне "Близкие люди", которое можно запустить двумя способами: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 и нажмите кнопку ОК.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 ‘!’ и идентификатор активируемого класса.and the Activatable Class ID. Чтобы найти имя семейства пакета, откройте Package.appxmanifest с помощью редактора по умолчанию и найдите вкладку «Упаковка». Здесь элемент «Приложение» является активируемым классом, соответствующим представлению получателя данных.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