Compartilhamento de Minhas PessoasMy People sharing

O recurso Minhas Pessoas permite que os usuários fixem contatos na barra de tarefas, permitindo que eles fiquem em contato facilmente de qualquer lugar do Windows, não importa por qual aplicativo eles estejam conectados.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. Agora os usuários podem compartilhar conteúdo com seus contatos fixados arrastando arquivos do Explorador de Arquivos para o bloco Minhas Pessoas fixado.Now users can share content with their pinned contacts by dragging files from the File Explorer to their My People pin. Eles também podem compartilhar com quaisquer contatos do repositório do Windows por meio do botão compartilhar padrão.They can also share to any contacts in the Windows contact store via the standard share charm. Continue lendo para saber como habilitar seu aplicativo como um destino de compartilhamento de Minhas Pessoas.Keep reading to learn how to enable your application as a My People sharing target.

Painel de compartilhamento de Minhas Pessoas

RequisitosRequirements

Visão geralOverview

Há três etapas que você deve seguir para habilitar seu aplicativo como destino de compartilhamento de Minhas Pessoas:There are three steps you must take to enable your application as a My People sharing target:

  1. Declare o suporte para o contrato de ativação shareTarget no manifesto do aplicativo.Declare support for the shareTarget activation contract in your application manifest.
  2. Anote os contatos com os quais os usuários podem compartilhar usando seu aplicativo.Annotate the contacts that the users can share to using your app.
  3. Dê suporte a várias instâncias do aplicativo em execução ao mesmo tempo.Support multiple instances of the application running at the same time. Os usuários devem poder interagir com a versão completa de seu aplicativo enquanto também o usam para compartilhar com outras pessoas.Users must be able to interact with a full version of your application while also using it to share with others. Eles podem usá-lo em várias janelas de compartilhamento ao mesmo tempo.They may use it in multiple share windows at once. Para dar suporte a isso, seu aplicativo precisa ser capaz de executar várias exibições simultaneamente.To support this, your application needs to be able to run multiple views simultaneously. Para saber como fazer isso, consulte o artigo "Mostrar vários modos de exibição para um aplicativo".To learn how to do this, see the article "show multiple views for an app".

Feito isso, seu aplicativo será exibido como destino de compartilhamento na janela de compartilhamento de Minhas Pessoas, que pode ser iniciada de duas maneiras: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. Um contato é escolhido pelo botão compartilhar.A contact is chosen via the share charm.
  2. Arquivos são arrastados e soltos em um contato fixado na barra de tarefas.File(s) are dragged and dropped on a contact pinned to the taskbar.

Declarando suporte para o contrato de compartilhamentoDeclaring support for the share contract

Para declarar suporte para seu aplicativo como destino de compartilhamento, abra seu aplicativo no Visual Studio.To declare support for your application as a share target, first open your application in Visual Studio. No Gerenciador de Soluções, clique com o botão direito do mouse no arquivo Package.appxmanifest e selecione Abrir com.From the Solution Explorer, right click Package.appxmanifest and select Open With. No menu, selecione Editor de XML (texto) e clique em OK.From the menu, select XML (Text) Editor and click OK. Em seguida, faça as seguintes alterações no manifesto:Then, make the following changes to the manifest:

AntesBefore

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

DepoisAfter

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

Este código adiciona suporte para todos os formatos de dados e arquivos, mas você pode optar por especificar quais tipos de arquivos e formatos de dados são compatíveis (consulte a documentação da classe ShareTarget para obter mais detalhes).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).

Anotando contatosAnnotating contacts

Para permitir que a janela de compartilhamento de Minhas Pessoas mostre seu aplicativo como destino de compartilhamento para seus contatos, você precisa gravá-los no repositório de contatos do 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. Para saber como gravar contatos, consulte o exemplo de integração de cartão de contato.To learn how to write contacts, see the Contact Card Integration sample.

Para seu aplicativo ser exibido como destino de compartilhamento de Minhas Pessoas ao compartilhar com um contato, ele deve gravar uma anotação para esse contato.For your application to appear as a My People share target when sharing to a contact, it must write an annotation to that contact. Anotações são dados do seu aplicativo que são associados a um contato.Annotations are pieces of data from your application that are associated with a contact. A anotação deve conter a classe ativável correspondente ao seu modo de exibição desejado no membro ProviderProperties e declarar suporte para a operação Share.The annotation must contain the activatable class corresponding to your desired view in its ProviderProperties member, and declare support for the Share operation.

Você pode anotar contatos a qualquer momento enquanto seu aplicativo estiver em execução, mas geralmente é necessário anotar os contatos assim que eles são adicionados ao repositório de contatos do 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);
}

O "appId" é o Nome da Família de Pacotes, seguido por '!'The “appId” is the Package Family Name, followed by ‘!’ e a ID da Classe Ativável.and the Activatable Class ID. Para localizar o Nome de Família de Pacote, abra Package.appxmanifest usando o editor de padrão e procure na guia "Empacotamento". Aqui, o "Aplicativo" é a classe ativável correspondente para o modo de exibição de Destino de compartilhamento.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.

Execução como destino de compartilhamento de Minhas PessoasRunning as a My People share target

Por fim, para executar o app, substitua o método OnShareTargetActivated na classe principal do app para processar a ativação do destino de compartilhamento.Finally, to run the app, override the OnShareTargetActivated method in your app’s main class to handle the share target activation. A propriedade ShareTargetActivatedEventArgs.ShareOperation.Contacts conterá os contatos com os quais o conteúdo está sendo compartilhado ou estará vazia se for uma operação de compartilhamento padrão (e não um compartilhamento de Minhas Pessoas).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
    }
}

Veja tambémSee also