导出 (0) 打印
全部展开
信息
您所需的主题如下所示。但此主题未包含在此库中。

DataRequest.GetDeferral | getDeferral Method

通过创建并返回 DataRequestDeferral 对象支持异步共享操作。

语法


var dataRequestDeferral = dataRequest.getDeferral();

参数

此 方法 没有参数。

返回值

类型: DataRequestDeferral

可让您异步共享或发送内容的对象。

备注

GetDeferral 方法允许您的应用程序在共享操作时调用函数,因此,您的应用程序可以通过异步方式生成目标应用程序的 DataPackage 对象。

当您需要在共享操作时使用异步函数调用生成 DataPackage,请使用此方法。此函数必须在 200ms 内返回一个 DataPackage 对象以防止操作超时。如果您的应用程序共享需要更多时间来打包的内容,例如文件或照片的集合,请不要使用此方法。代之以的是,使用 SetDataProvider 方法将委托分配给一个 DataPackage,将该 DataPackage 返回到目标应用程序。

Windows Phone 8

此 API 不实现,但是调用时会引发异常。请参见 Windows Phone 运行时 API

示例

下面的示例显示如何通过使用 GetDeferral 方法获取 DataRequestDeferral 对象。


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);
    });
}


要求

最低支持客户端

Windows 8

最低支持服务器

Windows Server 2012

最低支持电话

Windows Phone 8 [未实现,请参见备注]

命名空间

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

元数据

Windows.winmd

另请参见

DataRequest

 

 

显示:
© 2014 Microsoft