Firefox 和 Chrome 应用清单的主要区别是什么
What are the key differences in Firefox and Chrome App manifests
FF 和 Chrome 都已开始支持使用应用程序清单和服务工作者的渐进式 Web 应用程序。
那么在编写清单时要牢记哪些主要区别(或者同一个清单文件可以在两者上工作)。
如果它是一个托管的网络应用程序(不是打包的),那么在让用户安装它的过程中有什么不同?
有两件事在起作用:遗产和未来。
Legacy 部分(需要一个更好的词组)是旧式打包系统(尽管它们仍然有效)。 Mozilla 和 Chrome 都有自己的打包格式和大致相似的 JSON 清单。我个人会远离这两者并专注于未来。
Chrome 支持的面向未来的系统 Web App Manifest,用于 Android 上的安装体验。 Opera 和 Firefox OS 也支持它。您在两者上编写的清单应该适用于所有平台。显然每个实现都处于不同的阶段,例如:
- Chrome 有
chrome_related_applications
和 prefer_related_applications
用于链接到本机应用程序
- Chrome支持
background_color
和theme_color
生成闪屏
- Firefox 需要
splash_screens
对象来创建启动画面。
- Firefox 定义了一个
scope
告诉浏览器 url 路径被认为是应用程序的一部分。 Chrome 和 Opera 忽略这一点。
我会说 Web App Manifest 现在至少定义了一个 "consistent" 可安装 Web 应用程序的愿景。
这个问题有很多问题。我将尝试通过提供一些历史记录然后回答 OP 可能 提出的几个问题来解决所有问题。
背景
打包的应用程序
Chrome、Firefox、Opera 和许多其他平台曾在不同时期拥有 "packaged" 个应用程序平台,其中 运行 HTML/JS/CSS 内容不在网络上。这些通常使用某种清单文件结合类似 zip 的打包和目录结构(有时还有签名)来分发应用程序。这些应用程序通常没有参与具有与 Web 内容相同的约束和功能的同源策略或 运行;这些软件包通常通过专有商店提供,并且 "plain old web content".
尚未提供功能和 API。
这些应用程序的清单格式 - 至少在 Chrome Packaged Apps and Firefox Packaged Apps 的情况下 - 是一个 JSON 文件,其内容和选项未标准化。
托管应用程序
一些系统将提供给其专有打包应用程序系统的额外功能与 "real" 基于 Web 的应用程序托管相融合,以创建 "Hosted Applications"。它们有多种形式,但总而言之,它们 也 倾向于具有基于 JSON 的专有清单文件。例如,参见 Chrome Hosted Apps, Firefox Hosted Apps, and Windows 10 Hosted Apps.
的文档
同样,这些系统是专有的、非标准的、不可互操作的,尽管有问题的内容来自 "real web"(不像他们的打包应用程序表兄弟)。
渐进式 Web 应用程序
Progressive Web Apps 不同于打包应用程序和托管应用程序,因为它们 只是 "plain old web content" 发生指向基于标准轨道 Web App Manifest format.
的清单文件
此格式是 Chrome 检测并用于触发“Add-to-Homescreen”行为的格式,也是 Opera 当前在您手动向主屏幕添加内容时使用的格式(以及将来,当 Opera提示)。
Mozilla signaled support 对于这种格式,他们的工程师大量参与了标准的设计和演变。我乐观地认为这将演变成对 UI 基于标准而非专有清单的支持。
Mozilla 也有望在未来几个月内提供对 Service Worker 的支持,这将为 Chrome、Opera 和 FF 之间的互操作 "install" 行为奠定基础。激动人心的时刻。
FF 和 Chrome 都已开始支持使用应用程序清单和服务工作者的渐进式 Web 应用程序。
那么在编写清单时要牢记哪些主要区别(或者同一个清单文件可以在两者上工作)。
如果它是一个托管的网络应用程序(不是打包的),那么在让用户安装它的过程中有什么不同?
有两件事在起作用:遗产和未来。
Legacy 部分(需要一个更好的词组)是旧式打包系统(尽管它们仍然有效)。 Mozilla 和 Chrome 都有自己的打包格式和大致相似的 JSON 清单。我个人会远离这两者并专注于未来。
Chrome 支持的面向未来的系统 Web App Manifest,用于 Android 上的安装体验。 Opera 和 Firefox OS 也支持它。您在两者上编写的清单应该适用于所有平台。显然每个实现都处于不同的阶段,例如:
- Chrome 有
chrome_related_applications
和prefer_related_applications
用于链接到本机应用程序 - Chrome支持
background_color
和theme_color
生成闪屏 - Firefox 需要
splash_screens
对象来创建启动画面。 - Firefox 定义了一个
scope
告诉浏览器 url 路径被认为是应用程序的一部分。 Chrome 和 Opera 忽略这一点。
我会说 Web App Manifest 现在至少定义了一个 "consistent" 可安装 Web 应用程序的愿景。
这个问题有很多问题。我将尝试通过提供一些历史记录然后回答 OP 可能 提出的几个问题来解决所有问题。
背景
打包的应用程序
Chrome、Firefox、Opera 和许多其他平台曾在不同时期拥有 "packaged" 个应用程序平台,其中 运行 HTML/JS/CSS 内容不在网络上。这些通常使用某种清单文件结合类似 zip 的打包和目录结构(有时还有签名)来分发应用程序。这些应用程序通常没有参与具有与 Web 内容相同的约束和功能的同源策略或 运行;这些软件包通常通过专有商店提供,并且 "plain old web content".
尚未提供功能和 API。这些应用程序的清单格式 - 至少在 Chrome Packaged Apps and Firefox Packaged Apps 的情况下 - 是一个 JSON 文件,其内容和选项未标准化。
托管应用程序
一些系统将提供给其专有打包应用程序系统的额外功能与 "real" 基于 Web 的应用程序托管相融合,以创建 "Hosted Applications"。它们有多种形式,但总而言之,它们 也 倾向于具有基于 JSON 的专有清单文件。例如,参见 Chrome Hosted Apps, Firefox Hosted Apps, and Windows 10 Hosted Apps.
的文档同样,这些系统是专有的、非标准的、不可互操作的,尽管有问题的内容来自 "real web"(不像他们的打包应用程序表兄弟)。
渐进式 Web 应用程序
Progressive Web Apps 不同于打包应用程序和托管应用程序,因为它们 只是 "plain old web content" 发生指向基于标准轨道 Web App Manifest format.
的清单文件此格式是 Chrome 检测并用于触发“Add-to-Homescreen”行为的格式,也是 Opera 当前在您手动向主屏幕添加内容时使用的格式(以及将来,当 Opera提示)。
Mozilla signaled support 对于这种格式,他们的工程师大量参与了标准的设计和演变。我乐观地认为这将演变成对 UI 基于标准而非专有清单的支持。
Mozilla 也有望在未来几个月内提供对 Service Worker 的支持,这将为 Chrome、Opera 和 FF 之间的互操作 "install" 行为奠定基础。激动人心的时刻。