我正在開發手機間隙應用程序,最近我們添加了對Windows 8.1平臺的支持。應用程序使用Cordova FileSystem API下載/創建保存到設備的文件。無法在Windows 8.1平臺上使用cordova inappbrowser打開本地文件
我一直在使用它看起來像這樣
ms-appdata:///local/file.png
我檢查我的電腦上的文件是應用程序的根文件夾下的LocalState文件夾中查看的URL成功保存文件到設備。但是,當我嘗試使用inAppBrowser打開此文件時,什麼都不會發生;沒有報告錯誤消息,並且沒有inAppBrowser默認事件觸發。
function empty() { alert('here'); } //never fires
var absoluteUrl = "ms-appdata:///local/file.png";
cordova.InAppBrowser.open(absoluteURL, "_blank", "location=no", { loadstart: empty, loadstop: empty, loaderror: empty });
我已經驗證該URL是通過調用有效以下內置的JavaScript的URL
Windows.Storage.StorageFile.getFileFromApplicationUriAsync(uri).done(function (file) {
debugger; //the file object contains the correct path to the file; C:\...etc.
});
此外,添加URL作爲的src img標籤按預期工作。
我也嘗試使用addEventListener(「loadstart」)等附加inAppBrowser處理程序,但他們都沒有觸發。但是,當我嘗試打開「http://www.google.com」時,事件發生,inAppBrowser彈出屏幕。
檢查DOM我可以看到inAppBrowser元素被加入,但它似乎並不有一個源屬性之後設置
<div class="inAppBrowserWrap">
<x-ms-webview style="border-width: 0px; width: 100%; height: 100%;"></x-ms-webview>
</div>
我已經看過諸如this one但沒有其他問題無濟於事。我已經驗證了
一)InAppBrowser安裝
B)deviceReady已經解僱
我也試圖改變目標爲「_self」(同樣的問題)和「_SYSTEM」(彈出說你需要一個新的應用程序來打開一個msappdata類型的文件://),我的想法已經不多了。有人遇到過類似的問題嗎?
是在@Jack奧尼爾的回答中提到的相同的博客文章,說:'Windows.System。 Launcher.LaunchFileAsync()可以被調用,以便shell確定正確的應用程序來處理文件。「這對我有效 – shadi