Condivisione con I miei contattiMy People sharing

La funzionalità My People consente agli utenti di aggiungere contatti alla propria barra delle applicazioni, consentendo loro di rimanere in contatto facilmente da qualsiasi punto di Windows, indipendentemente dall'applicazione da cui sono connessi.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. Ora gli utenti possono condividere il contenuto con i contatti bloccati trascinando i file da Esplora file al pin personale.Now users can share content with their pinned contacts by dragging files from the File Explorer to their My People pin. Possono inoltre condividere i contatti nell'archivio contatti di Windows tramite l'accesso condiviso standard.They can also share to any contacts in the Windows contact store via the standard share charm. Continua a leggere per scoprire come abilitare l'applicazione come destinazione di condivisione di persone personali.Keep reading to learn how to enable your application as a My People sharing target.

Pannello Condivisione persone

RequisitiRequirements

PanoramicaOverview

Per abilitare l'applicazione come destinazione di condivisione personale, è necessario eseguire tre passaggi:There are three steps you must take to enable your application as a My People sharing target:

  1. Dichiarare il supporto per il contratto di attivazione shareTarget nel manifesto dell'applicazione.Declare support for the shareTarget activation contract in your application manifest.
  2. Annotare i contatti che gli utenti possono condividere con l'app.Annotate the contacts that the users can share to using your app.
  3. Supportare più istanze dell'applicazione in esecuzione nello stesso momento.Support multiple instances of the application running at the same time. Gli utenti devono essere in grado di interagire con una versione completa dell'applicazione, usandola anche per condividerla con altri utenti.Users must be able to interact with a full version of your application while also using it to share with others. Possono usarlo in più finestre di condivisione contemporaneamente.They may use it in multiple share windows at once. Per supportare questa operazione, l'applicazione deve essere in grado di eseguire contemporaneamente più visualizzazioni.To support this, your application needs to be able to run multiple views simultaneously. Per informazioni su come eseguire questa operazione, vedere l'articolo "visualizzare più visualizzazioni per un'app".To learn how to do this, see the article "show multiple views for an app".

Una volta eseguita questa operazione, l'applicazione verrà visualizzata come destinazione di condivisione nella finestra condivisione persone, che può essere avviata in due modi: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. Viene scelto un contatto tramite l'accesso alla condivisione.A contact is chosen via the share charm.
  2. I file vengono trascinati e rilasciati in un contatto aggiunto alla barra delle applicazioni.File(s) are dragged and dropped on a contact pinned to the taskbar.

Dichiarazione del supporto per il contratto di condivisioneDeclaring support for the share contract

Per dichiarare il supporto per l'applicazione come destinazione di condivisione, aprire prima l'applicazione in Visual Studio.To declare support for your application as a share target, first open your application in Visual Studio. Dal Esplora soluzionifare clic con il pulsante destro del mouse su Package. appxmanifest e scegliere Apri con.From the Solution Explorer, right click Package.appxmanifest and select Open With. Dal menu selezionare editor XML (testo) e fare clic su OK.From the menu, select XML (Text) Editor and click OK. Apportare quindi le seguenti modifiche al manifesto:Then, make the following changes to the manifest:

PrimaBefore

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

DopoAfter

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

Questo codice aggiunge il supporto per tutti i file e i formati di dati, ma è possibile scegliere di specificare quali tipi di file e formati di dati sono supportati. per altre informazioni, vedere la documentazione relativa alla classe 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).

Annotazione di contattiAnnotating contacts

Per consentire alla finestra condivisione personale di visualizzare l'applicazione come destinazione di condivisione per i contatti, è necessario scriverli nell'archivio contatti di 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. Per informazioni su come scrivere i contatti, vedere l'esempio relativo all' integrazione con la scheda contatto.To learn how to write contacts, see the Contact Card Integration sample.

Affinché l'applicazione venga visualizzata come destinazione della condivisione My People durante la condivisione in un contatto, deve scrivere un'annotazione in tale contatto.For your application to appear as a My People share target when sharing to a contact, it must write an annotation to that contact. Le annotazioni sono parti di dati dell'applicazione associate a un contatto.Annotations are pieces of data from your application that are associated with a contact. L'annotazione deve contenere la classe attivabile corrispondente alla visualizzazione desiderata nel membro ProviderProperties e dichiarare il supporto per l'operazione di condivisione .The annotation must contain the activatable class corresponding to your desired view in its ProviderProperties member, and declare support for the Share operation.

È possibile annotare i contatti in qualsiasi momento mentre l'app è in esecuzione, ma in genere è necessario annotare i contatti non appena vengono aggiunti all'archivio contatti di 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" è il nome della famiglia di pacchetti, seguito da'!'The “appId” is the Package Family Name, followed by ‘!’ e l'ID della classe attivabile.and the Activatable Class ID. Per trovare il nome della famiglia di pacchetti, aprire Package. appxmanifest usando l'editor predefinito ed esaminare la scheda "packaging". Qui, "app" è la classe attivabile che corrisponde alla visualizzazione di destinazione della condivisione.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.

Esecuzione come destinazione della condivisione personaleRunning as a My People share target

Infine, per eseguire l'app, eseguire l'override del metodo OnShareTargetActivated nella classe principale dell'app per gestire l'attivazione della destinazione della condivisione.Finally, to run the app, override the OnShareTargetActivated method in your app’s main class to handle the share target activation. La proprietà ShareTargetActivatedEventArgs. ShareOperation. Contacts conterrà i contatti in cui viene eseguita la condivisione oppure sarà vuota se si tratta di un'operazione di condivisione standard (non una condivisione personale).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
    }
}

Vedere ancheSee also