GetDeferral | getDeferral - Methode

DataRequest.GetDeferral | getDeferral Method

Unterstützt asynchrone Freigabevorgänge durch das Erstellen und Zurückgeben eines DataRequestDeferral-Objekts.

Syntax


var dataRequestDeferral = dataRequest.getDeferral();

Parameter

Methode besitzt keine Parameter.

Rückgabewert

Typ: DataRequestDeferral

Ein Objekt, das es Ihnen ermöglicht, Inhalt asynchon freizugeben und zu senden.

Hinweise

Die GetDeferral-Methode ermöglicht der App, während eines Freigabevorgangs eine Funktion aufzurufen, sodass die App das DataPackage-Objekt für die Ziel-App asynchron generieren kann.

Verwenden Sie diese Methode, wenn Sie einen asynchronen Funktionsaufruf verwenden möchten, um das DataPackage während eines Freigabevorgangs zu generieren. Diese Funktion muss ein DataPackage-Objekt innerhalb von 200 ms zurückgeben, um ein Timeout des Vorgangs zu vermeiden. Verwenden Sie diese Methode nicht, wenn Ihre App Inhalt freigibt, für den mehr Zeit zur Paketerstellung erforderlich ist (beispielsweise Sammlungen von Dateien oder Fotos). Verwenden Sie stattdessen die SetDataProvider-Methode, um einem DataPackage einen Delegaten zuzuweisen, und geben Sie dieses DataPackage an die Ziel-App zurück.

Windows Phone 8

Diese API wird nicht implementiert und löst beim Aufruf eine Ausnahme aus. Weitere Informationen finden Sie unter Windows Phone Runtime API.

Beispiele

Das folgende Beispiel zeigt, wie ein DataRequestDeferral-Objekt mithilfe der GetDeferral-Methode abgerufen wird.


function registerForShare() {
    var dataTransferManager = Windows.ApplicationModel.DataTransfer.DataTransferManager.getForCurrentView();
    dataTransferManager.addEventListener("datarequested", shareImageHandler);
}

function shareImageHandler(e) {
    var request = e.request;
    request.data.properties.title = "Share Image Example";
    request.data.properties.description = "A demonstration that shows how to share an image.";
    var deferral = request.getDeferral();
    Windows.ApplicationModel.Package.current.installedLocation.getFileAsync("images\\smalllogo.png").then(function (thumbnailFile) {
        request.data.properties.thumbnail = Windows.Storage.Streams.RandomAccessStreamReference.createFromFile(thumbnailFile);
        return Windows.ApplicationModel.Package.current.installedLocation.getFileAsync("images\\logo.png");
    }).done(function (imageFile) {
        request.data.setBitmap(Windows.Storage.Streams.RandomAccessStreamReference.createFromFile(imageFile));
        deferral.complete();
    }, function (err) {
        request.failWithDisplayText(err);
    });
}


Anforderungen

Mindestens unterstützter Client

Windows 8

Mindestens unterstützter Server

Windows Server 2012

Mindestens unterstütztes Telefon

Windows Phone 8 [nicht implementiert, siehe Hinweise]

Namespace

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

Metadaten

Windows.winmd

Siehe auch

DataRequest

 

 

Anzeigen:
© 2016 Microsoft