我的组织已经开发了 iOS 和 Android 应用程序,并开始开发适用于 Windows 8 的应用程序。以防万一,该应用程序正在使用 Phonegap aka Cordova。在现有的应用程序上,用户从商店下载一个非常“纤细”的应用程序,其中包含一个最小的 HTML 页面。用户登录到服务器,然后动态添加脚本标签,指向该服务器上的位置。与 Web 应用程序类似,脚本被下载到客户端然后执行。
Windows 8 的新安全模型阻止了这种行为。由于应用程序在本地上下文中运行并且脚本在 Web 上,因此我收到错误消息“应用程序无法在本地上下文中加载远程 Web 内容”。
有没有办法绕过这个限制?
在某种程度上,我对“创造性”的建议和技巧持开放态度。我已经尝试了一些事情,例如使用普通的 XHR 调用获取脚本,然后将响应注入到预定义的脚本标签。Windows 阻止了此尝试和所有其他尝试。
我还考虑过使用“ms-appx-web:”方案在 iframe 中渲染所有内容(在此处了解此方案,“方案和上下文”部分)。这可能允许我加载远程脚本,但会阻止代码访问本地运行的 JavaScript 代码的 API——Cordova 和 Windows 运行时。我的应用程序需要此访问权限。如果有一种从 Web 上下文访问 Cordova 和 Windows 运行时的方法,那也可能很有用。