2

我正在重写一个我们目前在 iOS 中工作的应用程序,它在使用 Windows 8 Metro 风格应用程序时遇到了问题。特别是我无法加载外部HTML 内容(以及相关的库,即 Css 和 JavaScript)。这样做时,我会收到大量警告和错误以及/或 JavaScript 文件未链接。

我相信我了解沙盒以及 ms-appx 与 ms-appx-web 上下文切换(在 JavaScript 项目类型中)并发现了以下内容。

  1. 使用 iFrame 从同一个项目中加载 html 可以工作,即渲染页面、执行链接的 javascript 等。(我相信这在从组件项目加载时也可以加载,即在同一个包中)

  2. 使用 iFrame 从 ApplicationData 加载(文件将在下载后解压缩)不适用于前面提到的任何一个上下文。出现类似的错误:"The app can’t use script to load the file:///...AppData/Local/Packages/.../index.html because the url launches another app. Only direct user interaction can launch another app."并且没有显示任何内容,即使这不是由脚本加载的。

  3. 在 JavaScript 中使用launchFileAsync('file:///...AppData/Local/Packages/.../index.html')会加载并显示内容,但不会链接到外部 JavaScript 文件(或者更确切地说是阻止它们),并且非常类似于从桌面执行 html 文件并获取Internet Explorer restricts this page from running scripts or ActiveX controlsAllow blocked content按钮。

不幸的是,该内容必须远程传送到应用程序。但是应用程序的所有其他方面都可以更改。我正在关注的其他研究途径是;使用应用内购买机制下载其他内容。构建自定义浏览器控件。解析文件内容并将其合并到一个整体页面中。

如果有人有任何想法或自己遇到过这个问题,我将不胜感激。

4

0 回答 0