DataPackage.SetDataProvider | setDataProvider Method

Définit un délégué pour gérer les demandes de l'application cible.

Syntaxe


dataPackage.setDataProvider(formatId, delayRenderer);

Paramètres

formatId

Type: String [JavaScript] | System.String [.NET] | Platform::String [C++]

Spécifie le format des données. Nous vous recommandons de définir cette valeur en utilisant la classe StandardDataFormats.

delayRenderer

Type: DataProviderHandler

Un délégué qui est chargée de traiter les demandes d'une application cible.

Remarques

Utilisez la méthode SetDataProvider lorsque votre application prend en charge un format spécifique, mais ne souhaite pas fournir les données tant que l'application cible ne le demande pas. Nous vous encourageons à utiliser cette méthode si votre application partage du contenu qui peut nécessiter un temps de traitement significatif, par exemple, lors du partage d'une sélection de photos, de vidéos ou de fichiers.

Lorsque vous utilisez cette méthode, vous devez spécifier un format et une fonction. Vous pouvez spécifier le format à l'aide de la classe StandardDataFormats ou vous pouvez utiliser une valeur de chaîne de format personnalisé. La fonction doit placer les données dans le DataPackage à l'aide d'une méthode comme SetData.

La méthode SetDataProvider est différente de la méthode GetDeferral de la classe DataRequest. Avec GetDeferral, une application source peut appeler une fonction qui met immédiatement les données dans l'objet DataPackage. La méthode SetDataProvider est destinée aux opérations de partage plus complexes où pour les opérations complexes de partage où l'empaquetage des données à partager est plus long ou plus gourmand en ressources.

Windows Phone 8

Cette API n'est pas implémentée et lève une exception si elle est appelée. Consultez API de runtime Windows Phone.

Exemples


var imageFile;
var picker = new Windows.Storage.Pickers.FileOpenPicker();
picker.fileTypeFilter.replaceAll([".jpg", ".bmp", ".gif", ".png", ".wmv"]);
picker.pickSingleFileAsync().then(function (file) {
    logText("PickImage: Picker returned a file");
    imageFile = file;
});

function onDeferredImageRequested(request) {
    try {
        if (imageFile) {
            // This is to make sure deferral works even in synchronous case
            var deferral = request.getDeferral();
            var imageStreamRef = Windows.Storage.Streams.RandomAccessStreamReference.createFromFile(imageFile);
            request.setData(imageStreamRef);
            deferral.complete();
        }
    } catch (exc) {
        // Error handling goes here.
    }
}


function shareFiles() {
    var dataTransferManager = Windows.ApplicationModel.DataTransfer.DataTransferManager.getForCurrentView();
    dataTransferManager.addEventListener("datarequested", function (e) {
        var request = e.request;
        request.data.properties.title = "Share Files Example";
        request.data.properties.description = "A demonstration that shows how to share files.";
        request.data.properties.fileTypes.replaceAll([".jpg", ".bmp", ".gif", ".png", ".wmv"]);
        request.data.setDataProvider(Windows.ApplicationModel.DataTransfer.StandardDataFormats.bitmap, onDeferredImageRequested);
    });
}



Conditions requises

Client minimal pris en charge

Windows 8

Serveur minimal pris en charge

Windows Server 2012

Téléphone minimal pris en charge

Windows Phone 8 [non implémenté, consultez la section Notes]

Espace de noms

Windows.ApplicationModel.DataTransfer
Windows::ApplicationModel::DataTransfer [C++]

Métadonnées

Windows.winmd

Voir aussi

DataPackage

 

 

Afficher:
© 2014 Microsoft