在FirefoxOS设备上测试特权应用

时间:2013-05-24 22:52:06

标签: web-applications firefox-os

我坚持开发我的Firefox OS网页应用程序因为我不知道如何测试它... 我使用deviceStorage API访问sdcard,但firefoxos模拟器无法识别任何外部SD卡,所以我想我不能使用模拟器,对吧?

我也有一台Unagi设备(最后一次固件更新),但是deviceStorage API需要特权权限,我不知道如何在实际设备上测试特权应用...如果,在清单中,我设置了“type”:“privileged”,我的应用程序可以正常使用模拟器(除了需要sdcard访问的代码),但如果我将应用程序推送到设备,则无效! (在应用程序内禁用Javascript,只是HTML工作) 有没有办法用firefoxos设备测试打包的PRIVILEGED应用程序而不将其发送到Firefox Marketplace?我听说在旧版本中有一个“开发者模式”,但它似乎已在较新版本中被禁用...

谢谢!

3 个答案:

答案 0 :(得分:1)

我的印象是Device Storage API在模拟器中工作,它使用操作系统中的文件夹来保存图像/音频/视频?

此外,如https://marketplace.firefox.com/developers/docs/firefox_os_simulator

中所述,通过Firefox OS Simulator将特权应用推送到您的Unagi应该可行。

您是否在控制台中看到任何可能提供线索的错误?尝试输入

adb logcat

答案 1 :(得分:1)

您可以在计算机上制作假sdcard: 在配置文件目录中添加名为“fake-sdcard”的文件夹  ~/.mozilla/firefox/xxxx.default/extensions/r2d2b2g@mozilla.org/profile/fake-sdcard

当您调用navigator.getDeviceStorage(“sdcard”)

时,模拟器将在此处查看

我还发现你有时必须重新启动手机才能在推送后使用javascript。

答案 2 :(得分:0)

我认为问题很可能是应用于特权应用的CSP (Content Security Policy)

它适用的一个限制是不允许HTML文件中的内联脚本。因此,所有脚本必须是HTML中引用的单独JS文件,而不是内联脚本块。

只有将type: privileged添加到清单后,CSP才会生效,因此如果您从头开始没有这个问题,很难发现问题。真的,发生这种情况时应该发出警告。