我坚持开发我的Firefox OS网页应用程序因为我不知道如何测试它... 我使用deviceStorage API访问sdcard,但firefoxos模拟器无法识别任何外部SD卡,所以我想我不能使用模拟器,对吧?
我也有一台Unagi设备(最后一次固件更新),但是deviceStorage API需要特权权限,我不知道如何在实际设备上测试特权应用...如果,在清单中,我设置了“type”:“privileged”,我的应用程序可以正常使用模拟器(除了需要sdcard访问的代码),但如果我将应用程序推送到设备,则无效! (在应用程序内禁用Javascript,只是HTML工作) 有没有办法用firefoxos设备测试打包的PRIVILEGED应用程序而不将其发送到Firefox Marketplace?我听说在旧版本中有一个“开发者模式”,但它似乎已在较新版本中被禁用...
谢谢!
答案 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才会生效,因此如果您从头开始没有这个问题,很难发现问题。真的,发生这种情况时应该发出警告。