2

为了测试 Firefox OS 的功能,我正在编写一个可以访问设备上各种 API 的特权应用程序,但我陷入了开发困境。我希望你能帮助我,我找不到任何有用的文档......我想从我的应用程序访问 Google Maps API,但这需要在应用程序包之外加载一个脚本(类似于<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?....."></script>)。由于特权应用程序中的 CSP 限制,这仅适用于模拟器,但在我的设备上我无法加载这些 API。有没有办法禁用 CSP 限制(仅用于测试目的)或解决这个问题?我试过了

<iframe src="frame.html" sandbox="allow-same-origin allow-scripts"></iframe>,

但是 frame.html 都无法加载这些脚本......

4

2 回答 2

1

只有在构建/刷新自己的 Gaia 时,才能禁用默认 CSP 限制。然后你可以添加类似的东西

pref("security.apps.privileged.CSP.default", "default-src *; script-src *; object-src 'none'; style-src *");

build/custom-prefs.js您的 Gaia 目录中的文件。请注意,虽然您可以执行此操作,但实际执行此操作可能不是一个好主意,因为它不适用于任何未安装自定义 Gaia 的设备。特权应用程序需要在打包的应用程序中包含所有脚本资源。

在您的情况下,更好的解决方案(并且唯一可以在真实设备上运行的解决方案)是在构建时获取 Google 的代码并将其包含在您的打包应用程序中(因此您可以将其用作<script src='js/googlemapsapi.js'></script>或类似的东西)。

于 2013-07-01T11:33:36.200 回答
0

要在您的设备上运行,它必须经过授权 Marketplace 的审查、批准和数字签名。然后只有您的应用程序将在真实设备上运行。欲了解更多信息,请点击以下链接。我不认为你可以覆盖这条规则。

点击这里

于 2013-06-18T07:52:55.803 回答