Démarrage rapide : prise en charge de formats de données personnalisés
Réduire la table des matières
Développer la table des matières

Démarrage rapide : prise en charge de formats de données personnalisés (HTML)

[ Cet article est destiné aux développeurs de Windows 8.x et Windows Phone 8.x qui créent des applications Windows Runtime. Si vous développez une application pour Windows 10, voir la Documentation ]

La classe fondamentale qui vous permet de partager des données entre plusieurs applications —la classe DataPackage— prend en charge les formats standard et les formats personnalisés. La classe DataPackage prend en charge les formats standard avec des méthodes fortement typées, telles que setText ou getHtml. Les formats personnalisés, quant à eux, vous permettent de définir des formats mieux ciblés qui améliorent l’expérience utilisateur.

Pour plus d’informations sur les formats personnalisés, notamment les points à prendre en considération avant d’en ajouter dans votre application, voir Recommandations sur la création de formats de données personnalisés.

Avant de commencer

Dans cette rubrique, nous partons du principe que vous utilisez déjà un format personnalisé dans votre application et que vous souhaitez maintenant savoir comment partager des données dans ce format avec d’autres applications. Si vous envisagez d’utiliser un format personnalisé, nous vous invitons à consulter la rubrique Recommandations sur la création de formats de données personnalisés.

Partage de données dans un format personnalisé

Pour partager des données dans un format personnalisé, vous devez d’abord obtenir une instance de l’objet DataPackage. Sur Windows 8.1, le code suivant fait appel à un détecteur d’événements pour détecter quand l’utilisateur appuie sur l’icône Partager, puis il obtient un objet DataPackage. Si vous développez une application pour Windows Phone 8.1, 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.


var dataTransferManager = Windows.ApplicationModel.DataTransfer.DataTransferManager.getForCurrentView();


Vous devez ensuite collecter les données que l’utilisateur souhaite partager. La procédure à suivre dépend du format personnalisé que vous avez défini. Le code suivant utilise un format que la classe DataPackage ne prend pas en charge directement —valeurs séparées par des virgules ou CSV— en tant que format personnalisé.


function shareCustomData() {
    //Create the custom data.
    var myArray = new Array(1, 2, 3, 4);
    var arrayToCsv = myArray.join(",");
    var dataTransferManager = Windows.ApplicationModel.DataTransfer.DataTransferManager.getForCurrentView();
    dataTransferManager.addEventListener("datarequested", function (e) {
        var request = e.request;
        request.data.properties.title = "Share Text Example";
        request.data.properties.description = "A demonstration that shows how to share.";
        request.data.setData("csv", arrayToCsv);
    });
}


Notez que vous devez utiliser la méthode setData de la classe DataPackage pour partager vos données. Cette méthode comporte deux paramètres, notamment le nom du format personnalisé et les données.


request.data.setData("csv", arrayToCsv);


À ce stade, il est utile de préciser quelques points :

  • Pour que le format personnalisé fonctionne correctement, il doit porter le même nom dans l’application source et l’application cible. Pour cette raison, nous vous recommandons de tester vos formats personnalisés avec les applications susceptibles d’être choisies par les utilisateurs. Si vous avez créé un format personnalisé, veillez à le mettre à la disposition des autres développeurs. Pour plus d’informations à ce sujet, voir Recommandations sur la création de formats de données personnalisés.
  • Par ailleurs, même si un format personnalisé offre une meilleure expérience utilisateur, il est conseillé de fournir une version des données dans un format standard. De cette façon, les utilisateurs gardent la possibilité de partager du contenu même si leur application ne prend pas en charge votre format personnalisé.

Réception de données dans un format personnalisé

Pour recevoir des données partagées dans un format personnalisé, vous devez déclarer que votre application est une cible de partage, puis mettre à jour votre fichier manifeste de package avec le type de format.

Pour déclarer que votre application est une cible de partage :

  1. Ouvrez le fichier manifeste. Il doit normalement porter un nom similaire à package.appxmanifest.
  2. Ouvrez l’onglet Déclarations.
  3. Choisissez Partage cible dans la liste Déclarations disponibles.

Pour indiquer le type de format :

  1. Ouvrez le fichier manifeste.
  2. Dans la section Types de fichiers pris en charge, cliquez sur Ajouter nouveau.
  3. Tapez l’extension du type de format. Vous devez inclure le point (.).

Ensuite, vous devez vérifier si votre application a été activée dans le cadre d’une opération de partage.


if (eventObject.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.shareTarget) {
    // Code to handle activation goes here.
}


Lorsque votre application est activée, utilisez l’objet ShareOperation pour obtenir les données à partager.


shareOperation = eventObject.detail.shareOperation;


Votre application peut alors utiliser la méthode Contains pour détecter si la classe DataPackageView contient des données dans le format personnalisé.


if(shareOperation.data.contains("customformat")) {
    //Process the data here.
}

Pour obtenir les données, utilisez la méthode getDataAsync.


shareOperation.data.getTextAsync(customFormatName).then(function (customFormatString) {
    // Process the custom data
});

Votre application traite les données différemment selon le type de format personnalisé utilisé par l’application source.

Rubriques associées

Exemple de partage de contenu source entre applications
Exemple de partage de contenu cible entre applications

 

 

Afficher:
© 2018 Microsoft