情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

DataPackage.SetDataProvider | setDataProvider Method

ターゲット アプリケーションからの要求を処理するデリゲートを設定します。

構文


dataPackage.setDataProvider(formatId, delayRenderer);

パラメーター

formatId

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

データの形式を指定します。StandardDataFormats クラスを使用してこの値を設定することをお勧めします。

delayRenderer

型: DataProviderHandler

ターゲット アプリケーションからの要求の処理を担当するデリゲート。

解説

アプリケーションが特定の形式をサポートしているが、ターゲット アプリケーションが要求するまでデータを指定しない場合は、SetDataProvider メソッドを使用します。写真、ビデオ、またはファイルの選択の共有など、アプリケーションが長い処理時間を必要とするコンテンツを共有する場合は、このメソッドを使用することをお勧めします。

このメソッドを使用する場合は、形式と関数を指定する必要があります。StandardDataFormats クラスを使用することによって形式を指定できます。カスタム形式の文字列値を使用することもできます。関数は、SetData などのメソッドを 使用 して、DataPackage にデータを設定する必要があります。

SetDataProvider メソッドは DataRequest クラスの GetDeferral メソッドとは異なります。GetDeferral によって、ソース アプリケーションは、データを DataPackage オブジェクトにすぐに配置する関数を呼び出すことができます。SetDataProvider メソッドは、共有するデータのパッケージ化に時間やリソースが多く使用される場合、より複雑な共有操作となります。

Windows Phone 8

この API は実装されていません。呼び出された場合は、例外をスローします。「Windows Phone ランタイム API」を参照してください。


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



要件

最小限サポートされるクライアント

Windows 8

最小限サポートされるサーバー

Windows Server 2012

最小限サポートされる携帯電話

Windows Phone 8 [実装されていません。"解説" を参照してください]

名前空間

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

メタデータ

Windows.winmd

参照

DataPackage

 

 

表示: