Windows Dev Center

Langage: HTML | XAML

Démarrage rapide : partage de contenu (XAML)

Les applications sont plébiscitées lorsqu’elles permettent aux utilisateurs de faire part de leurs activités avec leur famille et leurs amis. Les applications qui permettent aux utilisateurs de partager du contenu ont souvent tendance à voir leur popularité augmenter, ce qui encourage les utilisateurs à les utiliser plus souvent.

Pour savoir comment utiliser ces API, lisez la suite. Si vous préférez découvrir comment votre application peut recevoir du contenu partagé, voir Démarrage rapide : réception de contenu partagé.

Objectif: Après avoir parcouru ce document Démarrage rapide, vous devriez en savoir plus sur la façon de partager du contenu.

Prérequis

  • Vous devez être familiarisé avec Visual Studio et ses modèles.
  • Vous devez être familiarisé avec le développement en C#/C++.

Instructions

Choix de formats de données

L’objet DataPackage est à la base de toute opération de partage. Cet objet contient les données que l’utilisateur souhaite partager. DataPackage peut contenir différents types de contenu, à savoir :

  • Texte brut
  • URI (Uniform Resource Identifiers)
  • HTML
  • Texte mis en forme
  • Bitmaps
  • Fichiers
  • Données définies par le développeur

Un objet DataPackage peut contenir un ou plusieurs de ces formats, dans n’importe quelle combinaison. De plus, DataPackage peut contenir un délégué (fonction appelée lorsque l’application réceptrice demande des données). Nous vous recommandons d’utiliser un délégué chaque fois que les données que souhaite partager un utilisateur font appel à des ressources importantes. Un délégué peut en effet aider votre application à partager plus efficacement les données.

Choix de propriétés

Lorsque vous créez un package de données en vue de le partager, vous avez la possibilité de définir diverses propriétés qui fournissent des informations supplémentaires sur le contenu partagé. Ces propriétés contribuent à améliorer l’expérience utilisateur dans les applications cibles. Par exemple, un titre et une description permettent d’en savoir plus sur le contenu partagé par l’utilisateur, ce qui peut s’avérer utile lorsque ce contenu est partagé avec plusieurs applications. De même, un lien vers une page Web ou une miniature ajoutée à une image partagée peut servir de référence visuelle à l’utilisateur. Pour plus d’informations sur les propriétés que vous pouvez utiliser, consultez notre documentation sur DataPackage.DataPackagePropertySet.

Ajout de l’espace de noms DataTransfer

Bien entendu, vous devez d’abord ajouter les espaces de noms appropriés à votre application afin de pouvoir créer et traiter les objets associés au partage. Vous devez ajouter au minimum l’espace de noms Windows.ApplicationModel.DataTransfer :


using Windows.ApplicationModel.DataTransfer;


Cet espace de noms comporte tous les éléments nécessaires pour le partage de base. Gardez cependant à l’esprit que, si vous voulez partager un contenu tel que des images ou fichiers, vous devez également ajouter ces espaces de noms. Voici une liste des espaces de noms dont vous pouvez avoir besoin :

Configuration du partage

Pour prendre en charge le partage dans votre application, vous devez obtenir au préalable l’instance de la classe DataTransferManager qui a été affectée à la fenêtre active.


DataTransferManager dataTransferManager = DataTransferManager.GetForCurrentView();


Cette classe prend en charge un événement DataRequested, qui est déclenché quand un utilisateur souhaite appeler l’icône Partager. Dans une application du Windows Store, cela se produit automatiquement quand l’utilisateur appelle l’icône Partager. Si vous développez une application pour Windows Phone, aucune icône Partager n’est intégrée, donc vous devez ajouter un contrôle sur lequel l’utilisateur peut appuyer pour déclencher le gestionnaire.


dataTransferManager.DataRequested += new TypedEventHandler<DataTransferManager, 
DataRequestedEventArgs>(this.ShareTextHandler);

L’exemple ci-dessus inscrit un gestionnaire d’événements qui est appelé chaque fois qu’un événement DataRequested est déclenché. Ce gestionnaire obtient un objet DataRequestedEventArgs, qui à son tour contient l’objet DataRequest utilisé par votre application pour configurer les données que l’utilisateur veut partager.

La propriété title est obligatoire et doit être définie.


private void ShareTextHandler(DataTransferManager sender, DataRequestedEventArgs e)
{
    DataRequest request = e.Request;
    
    // The Title is mandatory
    request.Data.Properties.Title = "Share Text Example";

    // Now add the data you want to share.
}

Ajout de contenu

Quand votre application reçoit un objet DataRequest, elle est prête à ajouter le contenu que l’utilisateur souhaite partager. Tout contenu que vous partagez est doté de deux propriétés : un titre et le contenu lui-même. (Nous vous recommandons d’ajouter également une description.) Le code suivant repose sur nos exemples précédents pour partager du texte avec une application cible.


//To see this code in action, add a call to RegisterForShare to your constructor or other
//initializing function.
private void RegisterForShare()
{
    DataTransferManager dataTransferManager = DataTransferManager.GetForCurrentView();
    dataTransferManager.DataRequested += new TypedEventHandler<DataTransferManager, DataRequestedEventArgs>(this.ShareTextHandler);
}

private void ShareTextHandler(DataTransferManager sender, DataRequestedEventArgs e)
{
    DataRequest request = e.Request;
    // The Title is mandatory
    request.Data.Properties.Title = "Share Text Example";
    request.Data.Properties.Description = "A demonstration that shows how to share text.";
    request.Data.SetText("Hello World!");
}

Remarque  Pour exécuter cet exemple, ajoutez-le à votre projet, puis veillez à appeler RegisterForShare dans votre constructeur, dans OnNavigatedTo, ou autre fonction d’initialisation.

Nous disposons de plusieurs ressources pour vous aider à partager des données dans différents formats. Pour en savoir plus, voir :

Pour plus d’informations sur ces types de formats ou d’autres, voir Choix des formats de données et des types de fichiers.

Partage et délégués

Parfois, il est dénué de sens de préparer les données que l’utilisateur veut partager sur le champ. Par exemple, si votre application prend en charge différents formats de données, il est inefficace de créer ces formats immédiatement. Il vaut mieux attendre que l’application cible détermine le format voulu pour générer les données. Pour ce faire, configurez l’objet DataPackage de sorte qu’une fonction soit appelée chaque fois que l’application cible demande un format spécifique.


e.Request.Data.SetDataProvider(StandardDataFormats.Bitmap, 
        new DataProviderHandler(this.OnDeferredImageRequestedHandler));


Ce code utilise un objet DataRequestedEventArgs, que votre application reçoit lorsqu’un événement DataRequested se produit. Pour plus d’informations, voir Comment partager des fichiers.

Invocation par programme de l’interface utilisateur de partage

Une fois votre contenu configuré pour le partage, vous êtes prêt à commencer. L’utilisateur peut alors simplement sélectionner l’application pour recevoir le contenu. Dans les cas où l’utilisation de l’icône n’est pas la meilleure solution, par exemple pour partager votre meilleur score à un jeu, vous pouvez également lancer l’icône Partager par programme.

Remarque  

La Charms bar n’existe pas sur Windows Phone 8.1. Vous devez donc inclure l’option de partage par programmation. Celle-ci peut être accessible en permanence dans une barre d’application ou associée à un contrôle spécifique dans une page particulière.


private void ShareProgrammatically()

   Windows.ApplicationModel.DataTransfer.DataTransferManager.ShowShareUI();
}

Gestion des erreurs et d’autres problèmes

Dans la plupart des cas, le partage de contenu est un processus simple. Toutefois, un élément inattendu peut toujours se produire. Pour vous aider à gérer ces situations, sur Windows, l’objet DataRequest prend en charge une méthode FailWithDisplayText. Utilisez cette méthode pour afficher un message textuel à l’intention de l’utilisateur si un problème empêche votre application de partager du contenu. Par exemple, l’application peut avoir besoin que l’utilisateur sélectionne du contenu à partager alors que l’utilisateur ne l’a pas fait. Gardez à l’esprit que cette méthode n’est qu’une première étape. Vous devez toujours tester votre application afin de vérifier que vous êtes en mesure d’effectuer des actions supplémentaires en cas de problème.

Remarque  

La méthode FailWithDisplayText n’est pas prise en charge sur Windows Phone 8.1.

Récapitulatif et étapes suivantes

Vous devez désormais bien comprendre comment fonctionne le partage.

Pour en savoir plus ou pour obtenir des exemples plus précis sur la façon d’ajouter la fonctionnalité de partage à votre application, vous pouvez consulter les sections suivantes :

Rubriques associées

Sélection des formats de données pour le partage
Recommandations et liste de vérification sur le partage de contenu
Démarrage rapide : réception de contenu partagé
Scénarios de fonctionnalités de l’exemple Reversi : partage de contenu

 

 

Afficher:
© 2015 Microsoft