通过从本地存储调用其副本来重新加载Windows应用程序

时间:2014-12-03 05:41:29

标签: javascript windows-runtime windows-store-apps windows-phone-8.1 winjs

window.location="C:\Users\User\AppData\Local\Packages\Package-name\LocalState\package\app\screens\firstpage.html";

这给了我一个访问被拒绝的例外。

1 个答案:

答案 0 :(得分:1)

Windows应用商店应用无法使用绝对文件路径。引用本地存储的正确方法是使用ms-appdata:/// local /。 ms-appx:///对包内内容的作用相同。

但是,Windows不允许应用程序从本地存储中加载/刷新自己,因此即使使用正确的URI,您也会获得异常。

您真正想要做的是在您的应用中呈现动态HTML内容,您需要使用x-ms-webview元素。 webview可以从本地存储加载HTML / CSS / JS。需要注意的是,它无法访问WinRT API(它是沙箱),但您可以通过它的invokeScriptAsync方法(在webview中调用代码)和window.external.notify(在webview中调用)让应用程序和webview进行通信。在应用程序中引发MSWebViewScriptNotify事件。

有关详情,请参阅我的免费电子书Programming Windows Store Apps with HTML, CSS, and JavaScript, 2nd Edition,第195页的第4章“动态内容”部分。