我认为现在是时候向开发者展示安装打包应用的选项,以及扩展到在实际的 Firefox OS 设备上安装它们(更多关于 开放式 Web 应用,如果您不了解)。
为什么选择打包应用?
首先,打包应用 将应用程序中的所有资源压缩到一个文件中,并直接安装到设备上。这意味着所有文件都可直接访问,无需互联网连接。
另一个好处是,如果您需要访问应用程序的一些特权 API,则需要将其打包才能访问这些 API(出于安全原因,因为托管在网络上的任何代码自然无法访问设备上的敏感 API)。
不同的 API 在 使用 WebAPI 增强 Web 层功能 文章中进行了概述,每个 API 需要的权限列在 应用程序权限 中。
在 Firefox OS 模拟器中进行测试
在 Firefox OS 模拟器 中 - 最新功能在 3.0 预览版 中列出 - 您可以选择将应用程序安装为打包应用程序。
在模拟器仪表盘中,有一个标有“添加目录”的按钮。当您执行此操作并指向应用程序的 manifest.webapp
时,它会自动将其安装为打包应用程序。就这么简单!
并非所有 API 都受 Firefox OS 模拟器支持,但这是一个良好的开端!
当您按下更新按钮时,如果应用程序正在运行,则应刷新并重新启动它,如果未运行,则应启动它。如果在单击“更新”后内容或清单未更新,则会显示模拟器仪表盘中的阻止错误。
在模拟器中推送到设备
正如我们之前在此处所述,Firefox OS 模拟器 3.0 版 的新功能之一是“推送到设备”功能。
如果您在使用 Firefox OS 模拟器时连接了 Firefox OS 设备,您将在模拟器仪表盘中每个应用程序旁边获得一个“推送”按钮,以便将其直接推送到您的应用程序。
然后,您需要在设备上接受该传入请求以安装该应用程序。
手动步骤
- 将应用程序推送到设备后,您需要手动关闭并重新启动它才能获得更新的内容
- 如果您更新了清单中的任何内容,例如应用程序名称、方向,则需要重新启动操作系统才能使这些更改生效
需要考虑的事项
- 必须通过以下方式在设备上启用远程调试:
设置 > 设备信息 > 更多信息 > 开发人员 > 远程调试
- 对于 Windows 支持,请确保安装了 必要的驱动程序,并使用最新版本的 Firefox OS 模拟器(目前,这意味着 3.0 预览版)。
- 在 Linux(至少 Ubuntu)上,您必须以 root 身份创建文件
/etc/udev/rules.d/51-android.rules
,然后根据 Android 的设置设备进行开发 中的描述为设备添加特定于制造商的条目。我们其中一个测试设备的示例:条目
SUBSYSTEM=="usb", ATTR{idVendor}==" 19d2", MODE="0666", GROUP="plugdev"
- 确保您的设备上安装了最新版本的 Firefox OS(尤其是在最近的修复程序,例如 错误 842725 之后)。
使用 make-fxos-install 和命令行
如果您想建立良好的工作流程并且是终端的粉丝,我们建议您使用 make-fxos-install(由 Harald Kirschner 开发)。这是一个命令行工具,可以轻松地将应用程序直接推送到设备。
步骤 1
- 安装 XULRunner
- 安装 Android SDK
步骤 2
克隆 make-fxos-install 存储库。
步骤 3
在命令行中进入您的本地 make-fxos-install
目录。
选择要安装的应用程序类型
您有两个选项:打包或托管。您需要调用 make 命令并指向应用程序的文件夹。例如
make FOLDER=../Firefox-OS-Boilerplate-App packaged install
或者
make FOLDER=../Firefox-OS-Boilerplate-App hosted install
在设备上接受提示,就是这样!
请注意,打包应用程序将包含应用程序中的所有文件,而托管应用程序替代方案只需要安装两个文件
- 一个
manifest.webapp
文件 - 一个
metadata.json
文件
然后在 metadata.json
文件中,您只需要设置 manifestURL
参数,以指定应从何处提供应用程序。
手动步骤
适用于 Firefox OS 模拟器中“推送到设备”的上述步骤也适用
关闭并重新启动应用程序以查看更改,以及更新的清单 = 重新启动操作系统以查看任何这些更改。
试一试!
请测试以上解决方案,并查看哪种最适合您(我们知道您可能需要一段时间才能获得实际设备)。请告诉我们哪些有效,哪些无效 - 我们很乐意听到您的反馈!
关于 Robert Nyman [荣誉编辑]
Mozilla Hacks 的技术布道师和编辑。发表演讲和撰写关于 HTML5、JavaScript 和开放式 Web 的博客。Robert 是 HTML5 和开放式 Web 的坚定支持者,自 1999 年以来一直从事 Web 前端开发工作 - 在瑞典和纽约市。他还定期在 http://robertnyman.com 上发表博客,并且喜欢旅行和结识新朋友。
关于 Harald Kirschner (digitarald)
Harald “digitarald” Kirschner 是 Firefox 开发人员体验和工具的产品经理 - 致力于赋予创作者权力,让他们编写代码、设计和维护一个对所有人开放且可访问的网络。在他在 Mozilla 的 8 年里,他在性能、Web API、移动、可安装 Web 应用、数据可视化和开发者外联项目中培养了他的技能。
一条评论