跨平台开放式网络应用进展报告

在 Hacks 博客中,我们已经写了很多关于使用 HTML、JS 和 CSS 为 Firefox OS 构建应用的文章。我们正在努力确保这些相同的应用也能在 Android、Windows、Mac OS X 和 Linux 设备上运行。如果您的应用能够适应这些屏幕尺寸、CPU 和设备功能,那么我们有一个计划来确保您的应用在每个平台上都能像原生应用一样安装、启动、退出和卸载。

我创建了一个简短的视频,展示了来自 Firefox OS 的开放式网络应用如何在任何可用的 Gecko 平台上工作。

Firefox OS 是我们开放式网络应用的基准平台。在 Firefox OS 上,用户可以在 Firefox 应用商店中发现应用并将其直接安装到手机的主屏幕上。例如,我使用我的应用 Shotclock,这是一个用于计算户外摄影师太阳角度的开放式网络应用。让我们看看当我们将此应用安装到其他平台上时会发生什么。

Android

Android 用户使用 Firefox for Android 浏览器在 Firefox 应用商店中发现应用。Firefox 应用商店已批准 Shotclock 用于 Android,因此我们只需点击安装按钮,就像我们在 Firefox OS 上所做的那样。我们将自动将开放式网络应用重新打包为原生 Android 应用,为我们的用户提供开放式网络应用的原生应用体验。

因为我们是从 Android APK 安装的,所以我们可以从最近的应用列表中管理它,并且像其他任何应用一样在应用抽屉中找到它。

Windows

Windows 用户使用桌面版 Firefox 在 Firefox 应用商店中发现应用。Firefox 应用商店也已批准 Shotclock 用于 Windows 笔记本电脑,因此我们只需点击应用商店的安装按钮。我们将自动将开放式网络应用重新打包为原生 Windows 应用。

这是 Shotclock 在 Windows 上运行,就像一个真正的应用。我们的重新打包将意味着用户可以从 Windows 开始菜单启动他们的开放式网络应用,并从文件菜单退出它们。用户还可以从程序控制面板卸载它们。

Mac OS X

Mac OS X 用户也使用桌面版 Firefox 在 Firefox 应用商店中发现应用。我们将自动将开放式网络应用重新打包为原生 Mac OS X 应用。当用户点击安装按钮时,我们将 Shotclock 安装到 Mac OS X 的应用程序文件夹中。

从那里,它启动并运行就像一个真正的应用。原生打包意味着用户可以通过按 Control-Tab 在开放式网络应用之间切换,并从文件菜单退出它们。应用开发者重写了多少代码?零。

特权应用

到目前为止,我们已经查看了非特权应用。我们还将在所有这些平台上支持特权应用。这是 Kitchen Sink,我们用于测试 Firefox OS 特权 API 的应用。当我们将其安装到 Android 上时会发生什么?

发现和安装特权应用的体验将遵循 Android 的惯例,即在安装时向用户显示权限列表。这些权限是从开放式网络应用清单中复制的。在用户完成安装过程后,应用就可以使用了,并且能够访问手机硬件。

Linux 桌面

Firefox OS 附带的电子邮件应用基本上是一个使用 Socket API 进行网络连接的特权应用。我们的开放式网络应用实习生 Marco Castelluccio 让他在 Linux 笔记本电脑上运行。

他从 Gaia 复制了应用包,并对应用清单进行了一次调整。所以,如果你喜欢 Firefox OS 手机上附带的应用,并且想在其他设备上运行它们,跨平台开放式网络应用可以实现这一点。

iOS

我们很想在 iOS 设备上支持开放式网络应用,但 iOS 目前不包含安装基于 Gecko 的 Web 浏览器的选项,而这目前是支持开放式网络应用所必需的。

编辑:我们正在与 Cordova 社区合作,既允许 Cordova 应用在 Firefox OS 上无修改地运行,也允许 Cordova 打包的开放式网络应用在 iOS 上运行。有关更多详细信息,请参阅Cordova Firefox OS 项目页面Cordova Firefox OS GitHub 代码库

时间表

桌面版 - 您可以使用 Firefox 16 或更高版本在您的台式机和笔记本电脑上安装托管的非特权应用。特权应用支持应在未来两个月内登陆 Firefox Nightly。

Android - 您可以使用移动版 Firefox Aurora 安装应用,但您尚未获得原生应用体验。原生应用体验应在 12 月登陆移动版 Firefox Nightly。

关于 Robert Nyman [荣誉编辑]

技术布道师和 Mozilla Hacks 编辑。发表演讲和博客文章,内容涉及 HTML5、JavaScript 和开放式网络。Robert 坚定地相信 HTML5 和开放式网络,自 1999 年以来一直从事 Web 前端开发工作 - 在瑞典和纽约市。他还在 http://robertnyman.com 上定期发布博客文章,并且热爱旅行和结识新朋友。

更多 Robert Nyman [荣誉编辑] 的文章…


29 条评论

  1. b3tamax

    进展喜人。
    开放式网络在不断前进!

    2013 年 10 月 28 日 10:05

  2. Niclas Hoyer

    太棒了!特别是确实没有供应商锁定。如果愿意,每个人都可以启动自己的应用商店。请尽可能地简化特权应用的集成。我非常期待在 Linux 上找到 Thunderbird 的替代品。尽管开发在每个平台和几乎每个屏幕尺寸上都能运行的应用需要付出更多努力,但这值得付出努力。我希望能在我所有的设备上使用相同的应用。

    2013 年 10 月 28 日 10:53

    1. Bill Walker

      谢谢!我们即将允许每个应用商店提供特权应用,缺少的部分是用户授予新应用商店安装特权应用的权限的 UI。我们需要使体验尽可能清晰,以避免用户被诱骗从冒充其他人的商店安装特权应用。

      2013 年 10 月 29 日 07:51

  3. madddddddddddddd

    这比 Java 好在哪里?

    2013 年 10 月 28 日 15:23

    1. Luke

      Firefox 中不包含 Java,而且 Java 可能比 JS 慢。
      它在 Firefox 的新版本中也不会变得更好/获得新功能。
      它也不适用于手机。

      2013 年 10 月 28 日 21:46

      1. Ben

        你的意思是 Java 不适用于手机?Android 就是 Java!

        2013 年 10 月 29 日 03:50

        1. Allan

          只有 UI 和应用是 Java。核心操作系统实际上是 C 和 C++。

          2013 年 10 月 29 日 08:00

        2. Luke

          说得对。不过我是在从 Web 应用的角度思考——据我所知,没有 Java 插件移植(但这将是一个好主意)。

          2013 年 10 月 30 日 08:02

    2. Bill Walker

      我们可以争论 Java 是否是一个好的应用开发平台,但当我们选择技术时,我们也选择社区。我们希望将所有现有的令人惊叹的 HTML/JS/CSS 内容直接带到我们所有设备的中心。我们希望利用所有这些 Web 开发人员的活力和热情。

      2013 年 10 月 29 日 07:42

  4. Chris Sells

    这一切看起来都很酷,但如果我想能够将开放式网络应用打包以在平台本身的应用商店中发布,例如 iOS 应用商店、Google Play、Windows 应用商店等,该怎么办?我喜欢您可以在技术上使其工作,但我认为用户将在平台特定的商店中寻找平台特定的应用,而不是在 Firefox 应用商店中。谢谢。

    2013 年 10 月 28 日 18:37

    1. Bill Walker

      正如您所指出的,从技术上讲,可以获取我们生成的原生应用包装器并将其提交到应用商店进行分发,但总的来说,我们认为我们不能参与其中。看起来许多应用会被拒绝,因为它们使用了我们的新支付 API 而不是平台特定的 API,或者因为它们本身允许安装应用。因此,您需要自行解决这些限制。

      同时,我们需要继续努力使 Firefox 应用商店成为独立于任何特定平台的目标。

      2013 年 10 月 29 日 07:47

  5. Luke

    不错!它是否也会与使用 Unity Web 应用的 Ubuntu 集成?

    2013 年 10 月 28 日 21:38

    1. Bill Walker

      我喜欢这个想法,我们很乐意与 Ubuntu 人员讨论将我们所有的应用 API 和清单格式纳入 W3C 标准,以便我们可以互操作。

      2013 年 10 月 30 日 14:49

  6. Ivan Dejanovic

    我真的很喜欢你们迄今为止取得的成就。我喜欢 Web 应用作为原生应用运行的想法。这是一种全新的跨平台产品方法。

    目前,用户需要在其手机、平板电脑、台式机上安装 Firefox 才能安装 Web 应用。是否与其他浏览器供应商进行了讨论和计划,以启用通用 API,以便任何浏览器都可以以这种方式使用?在用户不想或无法在设备上安装 Firefox 的情况下,这将非常有用。

    不在应用商店中的 Web 应用是否可以安装和用作原生应用。我现在知道我可以在我的网站上添加一个安装按钮,任何用户都可以点击该按钮并在其 Firefox OS 设备上安装 Web 应用。这样我就可以直接从我的网站分发应用。此功能是否支持 Android、Linux、Windows、Mac OS?

    2013 年 10 月 29 日 02:12

  7. pd

    Delicious 似乎刚刚以这种方式构建了他们的新版本。不幸的是,他们还接受了知识分子关于优先设计移动端的建议,并将这种糟糕的体验强加给了桌面用户,而且太过分了。

    不过,我想这都是学习曲线。过不了多久,事情就会恢复到在桌面上使用像按钮一样的导航对象,再次使用 CSS 的力量 :) 循环往复。

    “可安装”Web 应用的一个弱点仍然是生态系统不支持任何默认的内置用户反馈。几十年来,Windows 应用都有状态栏是有充分理由的,而这不仅仅是你可以随污水一起倒掉的东西!由于某些莫名其妙的原因,Delicious 应用只是随机地什么也不做。它正在尝试并可能遇到网络问题的地方在哪里?错误消息在哪里?什么也没有!只是一个白屏。为什么要欺骗用户,剥夺基本的直观反馈,并将负担重新推给开发人员来替换已经存在的东西?任何网络请求都应该在 Web 应用中触发与桌面版 Firefox 中相同的状态反馈。如果必须,请将其设置为“精简版”,而不是完整的状态栏,但给用户*一些*东西!

    2013 年 10 月 29 日 09:56

  8. Steve

    是否可以使用 Mozilla 工具将 OWA 打包为 Android 应用,以便这些应用可以发布到 Google Play 商店或其他应用商店?或者由于需要先安装 Firefox for Android,这是否不符合应用商店的要求?

    2013 年 10 月 29 日 14:59

    1. Bill Walker

      Android 的重新打包应用将依赖于 Firefox for Android,因此如果它们在启动时无法检测到它,它们将引导您去安装它。至于上传到 Google Play,我认为我们将不得不让各个开发者自行解决。

      2013 年 10 月 30 日 14:56

  9. reProgrammed

    有时我希望 Mozilla 能像 Google Chrome 一样快速发展,但我明白为什么事情现在需要花费更长的时间:Mozilla 太忙于做像这样的惊人之举了!

    2013 年 10 月 29 日 15:57

    1. pd

      出于好奇,您如何看待 Mozilla 的发展速度比 Chrome 慢?如果有什么不同的话,Mozilla 不是发布得更频繁吗(无论好坏),尽管当然可以争论说大多数版本中没有真正的新功能。

      我希望您不要将快速发展的 Mozilla 等同于复制 Chrome 的 UI,他们计划这样做,在许多人眼中这是最糟糕的事情。

      2013 年 10 月 30 日 01:19

      1. Florian Bender (@fbender_dev)

        Mozilla 从未计划过,也永远不会复制 Chrome 的 UI。您所产生的误解是 Australis 看起来像 Chrome,但如果您仔细观察,它并非如此。唯一相同的是菜单图标(因为这现在几乎是所有应用的标准)及其位置 - 但当点击它们时,它们将显示不同的内容。许多人提到的另一件事是选项卡,但实际上,它们非常不同,具有不同的轮廓和更大的尺寸(对我来说,它们太大,但无论如何) - 并且只有活动选项卡会是这样的,而未激活的选项卡则几乎没有轮廓。

        2013 年 10 月 31 日 00:23

        1. pd

          1) 去除状态栏
          2) 选项卡位于顶部
          3) 使用单个按钮代替菜单(位于左侧而不是右侧,哦,独特!)
          4) 在内容选项卡中显示附加组件管理器,而不是单独的窗口(选项对话框和库窗口肯定不会持续太久吧?)
          5) 标题栏中的选项卡(在我看来,这是一个明智的举动)
          6) 位置/选项卡栏中的附加组件图标
          7) 曲线选项卡
          8) 超简化的浅色下载图标/悬挂窗口,而不是带有删除、移除和打开包含文件夹的真正有用的下载窗口。在此过程中,似乎破坏了两个存在多年的优秀的替代下载附加组件(下载状态栏、下载管理器调整)。
          9) 去除 RSS Feed 检测图标(也许不是复制 Chrome,但删除它消除了另一个差异化点)
          10) 默认隐藏书签栏(对我来说这不是问题,但同样,谁先这么做的?)


          11) 书签星号出现在地址栏中?
          12) 结合停止/重新加载按钮
          13) 新标签页缩略图
          14) 侧边栏的移除也在计划之中,不是吗? 因此破坏了另一批有用的附加组件,例如优秀的 Sage RSS 阅读器。

          毫无疑问,我也忘记了一些事情。自从 Chrome 进入城镇并在 Firefox 毫无察觉的情况下小睡了一觉以来,已经过去了漫长的五年。然后可能还有一些我甚至不知道的事情。毕竟,Mozilla 行星上不再发布任何公告了。那只是一个阅读公开演讲技巧和告别 Mozilla 帖子的地方。

          http://www.ghacks.net/2013/07/29/so-this-is-your-idea-of-a-great-user-interface-mozilla/

          你可能想支持 Australis Florian,但不要自欺欺人地认为它不是向 Chrome(如果不是“复制”)的实质性点头。自从 Chrome 首次发布时 Google 挖走了大量 Mozilla 员工以来,Mozilla 一直在追赶 Google。Mozilla 仍在追赶 Google,试图变得更强大并赶上多线程、内存高效、隐形升级、功能丰富的 Chrome,它超越了善意但上了年纪、内存膨胀、GC 暂停、单进程、视频编解码器匮乏、臃肿的 Firefox。恭喜 MemShrink 和 Snappy 项目为他们进行的个人训练,让 Firefox 重新振作起来,锻炼身体以减掉所有体重并赋予它良好的有氧运动能力。不幸的是,晚了三年,现在叛变的威胁笼罩着空气,因为 Mozilla 正在缓慢地模仿 Chrome 的 UI。现在,那些忠实的 Firefox 用户忍受了多年的糟糕性能,因为 Mozilla 的管理层忽视了一次又一次的呼吁,他们像死囚一样希望地狱能让他们免于执行,因为 Australis 的幽灵威胁着要将他们送入 Chrome 这个毒气室。

          2013 年 10 月 31 日 03:50

          1. Robert Nyman [编辑]

            两件事

            1. 这次讨论偏离了主题。本文讨论的是开放式 Web 应用,而不是 Firefox 的 UI。
            2. 虽然你自然有权陈述功能来源(这可能是无止境的,并且有多种看法),但这更像是一次个人抨击。

            请不要发布此类评论并保持主题相关。

            2013 年 10 月 31 日 15:58

          2. Luke

            在许多情况下,Firefox 明显优于/快于 Chrome – 例如,请参见:http://kripken.github.io/ammo.js/examples/new/ammo.html

            它在整体用户体验方面也明显更好——例如,如果/当 Flash 崩溃时,它会清空插件所在的位置,而不是显示“崩溃的标签”并且不显示任何内容。附加组件通常很棒且有用,而且数量众多。它没有 WebKit 的随机错误。

            Chrome 唯一拥有的优势是开发者工具,但在最近的版本中它并不那么好——当停靠在窗口底部时,“状态栏”加载项实际上可能会覆盖控制台/检查器/分析器,需要到处移动鼠标才能更改选项卡——并且右键单击,在控制台中评估在最近的版本中效果不佳,因为它在右键单击时会取消选择 :(

            至于通过创建 Firefox 市场来“复制 Chrome”,难道这与 Chrome 在复制 Firefox 附加组件时所做的事情不类似吗?

            2013 年 10 月 31 日 17:53

      2. reProgrammed

        pd,当我提到希望 Firefox 能像 Chrome 一样快速发展时,也许我应该澄清一下,希望 Firefox 能像 Chrome 一样快速发布 HTML5(以及类似)功能。如果你快速查看 html5test.com,你会发现 Firefox 在支持的 HTML5 功能数量方面仅仅领先于 Safari 和 Internet Explorer。

        对于一家宣传开放网络的公司/组织,我希望他们在支持的 HTML5 功能方面领先于 Chrome(目前排名第一)。尽管如此,Mozilla 在其支持的功能方面仍然取得了惊人的成就。

        2013 年 11 月 10 日 16:19

  10. Jr

    你好,

    我正在 Android 上使用 Aurora 版本,因为我没有 Gmail 帐户,也不使用 Google Play…

    我可以在哪里下载 [官方] 最新 Firefox apk 文件?(不在 gPlay 上)…

    如果我需要创建 Gmail 帐户才能在 Android 上下载 Firefox(我喜欢的那个),那么 Firefox 的(我喜欢的)自由在哪里?

    谢谢

    2013 年 10 月 30 日 05:32

    1. Robert Nyman [编辑]

      Android 上 Firefox 的维基页面概述,您也可以直接下载 .apk 文件。

      2013 年 10 月 30 日 13:58

    2. Luke

      这可能与以下错误相关:https://bugzilla.mozilla.org/show_bug.cgi?id=794963

      此外,那里还有一个关于仅提供 Google Play 链接,而不是 apk 链接或 FDroid 存储库链接的错误——但我似乎找不到它。

      2013 年 10 月 31 日 17:59

  11. nadrimajstor

    我理解正确吗:我创建了一些发布在 Mozilla 市场上的 FxOS 应用,我所要做的就是在市场的仪表板上勾选一些复选框,然后应用就能在其他平台上运行?:o

    2013 年 10 月 30 日 16:15

  12. Junior

    您好,是否有办法隐藏嵌入在桌面 Web 应用中的“简单菜单”(文件 | 编辑)?是否可以通过单击 X 按钮或通过 window.close() JS 来关闭应用程序?

    我想开发商业应用程序(没有“默认”菜单和上下文菜单),而这个简单菜单是我在 Web 应用中唯一[真正]不喜欢的东西…

    谢谢

    2013 年 11 月 6 日 16:14

本文的评论已关闭。