为 Firefox 开发 Cordova 插件 OS

Developing Cordova plugins for Firefox OS

如何在 Firefox 上创建 cordova 插件 OS?

我有一个为 iOS 和 Android 编写的 cordova 插件,我想添加对 firefox OS 的支持。具体来说,它列举了移动设备上已经安装的字体(我的用例是一个主要是离线的编辑器/翻译工具)。

看起来 firefox OS 在其 OS 的较低层使用了 Android 开源项目,称为 Gonk. But, it also looks like Gronk is buried a couple layers deeper than the applications live. Is this where I need to be writing the plugin code? It doesn't seem like code written there would be exposed through the gecko / gaia layers, and unfortunately the Cordova plugin developer's guide 没有关于在哪里的任何信息开始。

如果你能在那个级别上搞砸 Gonk,我认为它可以算作一个主要的安全威胁。今天 Fira 是系统字体,您可以使用自己的字体,只需将它包含在您的应用程序中 css。

我想现在 Firefox 中没有这样的东西 OS 但我会及时通知你,以防我找到东西。

恐怕无法从 Firefox OS 的 "Android" 层获取任何信息。你当然可以为你的机器做这件事,但是因为没有 Javascript 字体 API,所以不可能在 JavaScript 中创建这样的代码。所有 Cordova 应用程序都拥有与其他 Firefox OS 应用程序完全相同的权利。

好的,看起来这是一个分为两部分的答案:

  1. 对于 "how does one create a cordova plugin for firefox os?" 的一般问题,答案是 "in javascript." 如果您四处查看 Cordova's own plugins 的源代码,深入到 src/firefoxos 目录,您会注意到每个在 firefox os 上实现功能的插件都是在 javascript 上实现的。这种情况提出了 EdoPut 和 zalun 提出的观点——Cordova 插件不会向下钻取和 expose 任何尚未通过 javascript exposed 的东西,并且相反,任何未被 exposed 到 javascript 的内容对客户端应用程序都是不可用的。这就是firefox的荣与痛os.
  2. 对于我 "I want to dynamically retrieve the fonts installed on the device" 的具体情况,答案是 你不能 。当前的 API 没有直接的方法来执行此操作,正如此 google 组主题添加的那样,returning a static list isn't guaranteed to be correct between versions or vendors.

这里 一种根据浏览器是否进行字体替换来动态获取字体的 hack-y 方法:http://www.lalit.org/lab/javascript-css-font-detect/。我之前试过这个,它确实在 firefox 上工作,但在 webkit/chrome 上不行——因此我首先想为 iOS/Android 制作这个插件。我可能最终将此方法用于我的插件的 firefoxos 端口。