私はWindowsの携帯電話の開発で新しく、私はそれにphonegap/cordovaを使用して私のアプリケーションを移植する必要があります。私のコードのほとんどはAndroid/iOSとwinphoneでも動作しますが、このFileOpenPickerではブロックされています。 私はwinjs 2.1を使用しています。この機能が必要なページにいるときにスクリプトを呼び出す準備をしたいと思います。FileOpenPicker WP8.1 - どのように
私は数多くの例を読んできました。私は解決策にかなり近いと思います。私のHTMLファイルに
私は宣言する:
<script src="//Microsoft.Phone.WinJS.2.1/js/base.js"></script>
<script src="//Microsoft.Phone.WinJS.2.1/js/ui.js"></script>
<script type="text/javascript" src="js/default.js"></script>
そして、これは私にDefault.js、私はFileOpenPickerが呼び出されなければならページで使用するファイルです。
(function() {
"use strict";
var app = WinJS.Application;
var activation = Windows.ApplicationModel.Activation;
app.onloaded = function (args) {
var activationKind = args.detail.kind;
document.getElementById("btnSnap").addEventListener("click", pickSinglePhoto);
if (activationKind === Windows.ApplicationModel.Activation.ActivationKind.pickFileContinuation) {
continueFileOpenPicker(options.activatedEventArgs);
}
};
function pickSinglePhoto() {
// Clean scenario output
WinJS.log && WinJS.log("", "sample", "status");
console.log("in pickSinglePhoto");
// Create the picker object and set options
var openPicker = new Windows.Storage.Pickers.FileOpenPicker();
openPicker.viewMode = Windows.Storage.Pickers.PickerViewMode.thumbnail;
openPicker.suggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.picturesLibrary;
// Users expect to have a filtered view of their folders depending on the scenario.
// For example, when choosing a documents folder, restrict the filetypes to documents for your application.
openPicker.fileTypeFilter.replaceAll([".png", ".jpg", ".jpeg"]);
// Open the picker for the user to pick a file
openPicker.pickSingleFileAndContinue();
}
// Called when app is activated from file open picker
// eventObject contains the returned files picked by user
function continueFileOpenPicker(eventObject) {
console.log("in continueFileOpenPicker");
var files = eventObject[0].files;
var filePicked = files.size > 0 ? files[0] : null;
if (filePicked !== null) {
// Application now has read/write access to the picked file
WinJS.log && WinJS.log("Picked photo: " + filePicked.name, "sample", "status");
} else {
// The picker was dismissed with no selected file
WinJS.log && WinJS.log("Operation cancelled.", "sample", "status");
}
}
app.start();
})();
残念ながら、これは機能しません。私はcontinueFileOpenPickerに入ることができません。なぜなら、フラグactivationKindは常に定義されていないからです。私はapp.onloadedの代わりにapp.onactivatedを使うべきだと確信していますが、前者の場合、私はその関数に入ることができません。
私はすでにpickSinglePhotoという機能を試していましたが、うまくいくようですが、他のjavascriptファイルで機能を選択して使用できないため、アプリケーションがクラッシュしてから選択したページに戻れません。 bruteとして
ヒント?