Firefox和Chrome应用程序清单中的主要区别是什么?

时间:2015-11-25 18:55:45

标签: web-applications google-chrome-app firefox-os progressive-web-apps

FF和Chrome都已开始使用应用清单和服务工作人员支持渐进式网络应用。

那么在编写清单时要记住的主要区别是什么(或者相同的清单文件可以在两者上工作)。

如果它是托管的webapp(不是打包的),那么在用户安装它的过程中会有什么不同?

2 个答案:

答案 0 :(得分:6)

这个问题还有很多。我会尝试通过提供一些历史记录然后回答OP 可以要求的几个问题来对其进行排序。

<强>背景

打包的应用

Chrome,Firefox,Opera和许多其他平台在不同时期已经打包过#34;运行HTML / JS / CSS内容但不在Web上的应用程序平台。这些通常使用某种类型的清单文件与类似zip的打包和目录结构(有时是签名)相结合来分发应用程序。这些应用程序通常没有参与同源策略或以与Web内容相同的约束和功能运行;这些软件包经常通过专有商店和功能以及尚未提供给普通旧网络内容的API提供服务。

这些应用程序的清单格式 - 至少在Chrome Packaged AppsFirefox Packaged Apps的情况下 - 是一个JSON文件,其内容和选项未标准化。

托管应用

有些系统已将其专有打包应用系统提供的额外功能与实时&#34;真实&#34;基于Web的托管应用程序以创建&#34;托管应用程序&#34;。这些有很多种,但TL; DR是他们倾向于使用基于JSON的专有清单文件。例如,请参阅Chrome Hosted AppsFirefox Hosted AppsWindows 10 Hosted Apps的文档。

同样,这些系统是专有的,非标准的,不可互操作的,尽管有问题的内容来自真正的网络&#34; (与他们的Packaged App堂兄弟不同)。

渐进式网络应用

渐进式网络应用程序与打包应用程序和托管应用程序的不同之处在于它们只是&#34;普通的旧网络内容&#34;也发生指向基于标准轨道Web App Manifest format的清单文件。

此格式是Chrome检测到并用于触发&#34; Add-to-Homescreen&#34;行为以及当您手动向主屏幕添加内容时Opera当前使用的行为(以及将来,当Opera提示时)。

Mozilla有signaled support这种格式,他们的工程师已经积极参与标准的设计和发展。我乐观地认为,这将基于标准而非专有的清单演变为对UI的支持。

Mozilla也将在未来几个月内为服务工作者提供支持,这将为可互操作的“安装”提供支持。 Chrome,Opera和FF之间的行为。激动人心的时刻。

答案 1 :(得分:3)

有两件事在起作用:遗产和未来。

遗产部分(因缺少更好的短语)是旧式包装系统(尽管它们仍然有效)。 Mozilla和Chrome都有自己的打包格式和JSON清单,大致相似。我个人会远离这两个并专注于未来。

面向未来的系统Web App Manifest由Chrome支持,用于Android上的安装体验。 Opera和Firefox OS也支持它。您在两者上写的清单应该适用于所有平台。显然,每个实现都处于不同的阶段,例如:

  • Chrome有chrome_related_applicationsprefer_related_applications用于链接到原生应用
  • Chrome支持background_colortheme_color以生成启动画面
  • Firefox需要一个splash_screens对象来创建初始屏幕。
  • Firefox定义了一个scope,它告诉浏览器被视为应用程序一部分的URL路径。 Chrome和Opera忽略了这一点。

我会说Web App Manifest现在至少为可安装的Web应用程序定义了“一致”的愿景。