【发布时间】:2016-01-12 19:07:18
【问题描述】:
我正在开发一个电话间隙应用程序,我们最近添加了对 Windows 8.1 平台的支持。应用程序使用 Cordova FileSystem API 下载/创建保存到设备的文件。
我已使用如下所示的 URL 成功将文件保存到设备中
ms-appdata:///local/file.png
我已在我的 PC 上进行了检查,该文件可在应用程序根文件夹下的 LocalState 文件夹中查看。但是,当我尝试使用 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 添加为 img 标签的 src 可以正常工作。
我也尝试使用 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,但无济于事。我已经验证了
a) InAppBrowser 已安装
b) deviceReady 已触发
我还尝试将目标更改为“_self”(同样的问题)和“_system”(弹出窗口说您需要一个新应用程序才能打开 msappdata:// 类型的文件),但我的想法已经不多了。有没有人遇到过类似的问题?
【问题讨论】:
标签: windows-8.1 phonegap-plugins inappbrowser cordova-5.0.0