广泛部署的技术

可见性检测

页面可见性规范允许开发者检测他们的应用何时在前台,从而相应地调整他们的操作和资源消耗。

特性规范 / 小组成熟度现有实现
选择浏览器…
可见性检测Page Visibility (Second Edition)
Web 性能工作组 (Web Performance Working Group)
正式推荐标准

开发中的技术

打包

Web 应用清单允许开发者在单个 JSON 文件中提供有关 Web 应用的核心元数据(例如其名称、图标、首选启动 URL 和显示模式)。浏览器可以利用此信息来建议用户将应用安装在移动设备的主屏幕上(类似于原生应用),并创建更丰富的用户体验。

Web 应用清单——应用信息文档添加了一些新的属性,扩展了清单的格式,这些属性不会影响浏览器对已安装的 Web 应用的显示方式,但会为搜索引擎、应用程序目录和商店提供有用的元数据,例如应用类别、年龄等级和屏幕截图等。

除了Web通知以外,标记 API定义了另一种通知机制,允许已经安装在设备上的 Web 应用(例如通过清单文件)设置一个标记,通常显示在主屏幕上应用程序的图标旁边,在应用程序的状态发生变化时通知用户可能需要注意的信息(如新消息)。

离线 Web 应用

Service Workers 规范描述了一种方法,该方法使应用能够利用持久的后台处理,为离线运行应用打开了大门。

Service Workers 不仅可以使 Web 应用在离线或网络条件较差的情况下无缝地脱机工作,它还创建了一个模型可以使 Web 应用在浏览器窗口未打开,或者浏览器本身未运行时也能进行操作。这种能力为在后台运行 Web 应用打开了大门,并且可以对远程触发的事件作出反应。

远程通知

推送 API 使 Web 应用能够订阅远程通知,并在接收到后唤醒应用。长期以来,原生应用受益于这些通知带来的更多的用户参与。

内容分享

分享操作是移动设备上通过跨应用边界传递内容的常见范例,例如将 URL 或图像发布到自己最喜欢的社交网络应用中。Web分享API规范允许 Web 应用将文本、链接和其他内容分享到用户选择的任意目的地。该 API 是Web Intents提案的一个更有针对性的版本,Web Intents在2012年停止开发,部分原因是它的一般性引发了用户体验问题。

Web分享目标API建议允许Web应用在其应用清单中声明其可接收来自其他应用的内容。这允许用户选择安装的Web应用在分享菜单中被其他本地应用列出。

地理围栏

通过对后台操作的支持,地理位置传感器规范允许在设备进入指定的地理区域(也称为地理围栏)时唤醒Web应用。

特性规范 / 小组成熟度现有实现
选择浏览器…
打包Web Application Manifest
Web 应用工作组 (Web Applications Working Group)
工作草案
Web 应用清单——应用信息 (Web App Manifest - Application Information)
Web 应用工作组 (Web Applications Working Group)
工作组备忘 - informative
标记 API (Badging API)
Web 应用工作组 (Web Applications Working Group)
工作草案
离线 Web 应用Service Workers 1
Service Workers工作组 (Service Workers Working Group)
候选推荐标准
远程通知推送 API (Push API)
Web 应用工作组 (Web Applications Working Group)
工作草案
内容分享Web 分享 API (Web Share API)
Web 应用工作组 (Web Applications Working Group)
提案推荐标准
Web 分享目标 API (Web Share Target API)
Web 应用工作组 (Web Applications Working Group)
编辑草案
地理围栏地理位置传感器 (Geolocation Sensor)
设备与传感器工作组 (Devices and Sensors Working Group)
工作草案

探索性工作

打包

Web 打包文档描述了用于网站和应用的新包格式的用例,并概述了这种格式。

状态转换

在移动设备上运行的应用可以通过不同的状态,从运行到空闲、暂停、停止、丢弃或终止。这些状态之间的转换由底层操作系统触发,并从 Web 应用中隐藏。页面生命周期方案旨在向应用公开状态转换,以便这些应用能够保持/恢复状态、启用/禁用网络等。

用户空闲检测文档提出了一个 API 以检测用户何时变为空闲或何时锁定屏幕。应用可以使用该信息来通知其他用户当前用户不可访问(比如在聊天软件中),及时显示警告或暂停媒体以节省用户不在时的带宽。

无缝切换

很多网站会在其自己的用户界面内嵌入来自第三方来源的内容(例如新闻内容),或者将第三方内容加载到 iframe 中以提供更快、可靠的加载体验,这对于移动设备尤其重要。这种方法的一个主要缺点是不保留第三方的来源:只有第一方的来源出现在地址栏中,这使得用户难以识别他们正在浏览的内容的出处和可信度。另一个缺点是第三方页面无法利用附加到其源的客户端资源和权限。Portals是一个在网站或网页之间实现无缝切换的提案,它使一个页面能够嵌入另一个页面,并在嵌入状态和切换后的全屏状态之间无缝转换,从而解决上述源的问题。

后台执行

Web 后台同步规范建立在 Service Workers 之上,通过在后台运行网络操作,使 Web 应用能够无缝地保持用户数据的最新状态,从而适应用户在移动设备上可能经常遇到的不可靠的连接。

Background Fetch 定义了一个类似的基于 Service Workers 的后台下载和上传机制,但允许以用户可见的方式让操作在后台继续进行,即使是在用户关闭了所有浏览器窗口和 worker 的情况下。该规范专门用于支持下载和上传大型资源(如播客、电影、纹理)。

共享资源

一个应用可以一次运行多个 worker,并且一个应用的多个实例可以在单独的窗口中同时运行。Web 锁 API 允许此类应用获取锁并协调实例之间共享资源(例如存储)的使用。

MiniApps

MiniApps 是在具有混合原生和 Web 功能的宿主应用或操作系统中运行的一类应用形态。MiniApp 使用了 Web 技术(如 CSS 和 JavaScript)。出于性能或安全原因,一些通用 Web 技术在 MiniApp 上不可用(如 MiniApp 通常无法访问 DOM)。MiniApp 通常包含一些在原生应用(例如联系人 API 和地图)或开发框架(例如视图和页面路由)中更常见的特性。MiniApp 的信任模型与常规 Web 应用不同,因为 MiniApp 通常需要在宿主平台上进行审核和批准,然后用户才能访问它们。MiniApp 标准化白皮书回顾了 MiniApp 的潜在标准化领域。MiniApp 社区组负责培养更具体的需求文档和技术提案(URI SchemeLifecycleManifestPackaging)。

特性规范 / 小组实现意向
选择浏览器…
打包Web 打包 (Web Packaging)
Web 平台孵化社区组 (Web Platform Incubator Community Group)
状态转换页面生命周期 (Page Lifecycle)
Web 平台孵化社区组 (Web Platform Incubator Community Group)
用户空闲检测 (User Idle Detection)
Web 平台孵化社区组 (Web Platform Incubator Community Group)
无缝切换Portals
Web 平台孵化社区组 (Web Platform Incubator Community Group)
后台执行Web 后台同步 (Web Background Synchronization)
Web 平台孵化社区组 (Web Platform Incubator Community Group)
Background Fetch
Web 平台孵化社区组 (Web Platform Incubator Community Group)
共享资源Web 锁 API (Web Locks API)
W3C
MiniAppsMiniApp Standardization White Paper version 2
MiniApps Working Group

不再进行的工作

应用缓存
应用缓存机制是在HTML5中引入的。通过一个缓存清单,浏览器能够知道哪些文件需要被保留在缓存中,从而允许脱机访问Web应用。该特性已经被所有的主流浏览器实现,但存在安全问题,而且开发人员对缓存的控制极其有限,所以该功能在HTML 5.1中已不推荐使用,并于HTML 5.2中删除。Service Workers规范定义了一种更加强大的替代方法。
任务调度
任务调度 API 可以通过与 Web 应用关联的 service worker 在指定的时间触发任务。该规范属于现在已经关闭的系统应用工作组(System Applications Working Group)的范围,因此被搁置了。
地理围栏 API
地理围栏 API 可以在设备进入指定的地理区域时唤醒Web应用。这项工作已经停止,部分原因在于未能找到一种很好的方法来解决有关隐私的权限问题,还因为该 API 依赖于当时还不稳定的 Service Workers。通过对后台操作的支持,地理位置传感器规范现在提供了类似的功能。
后台执行控制
用户代理会限制 Web 应用在后台执行操作的能力,使应用可以执行的操作的控制权掌握在用户手中。Web预算API开发了一种机制,通过该机制,应用可以确定可在后台运行操作的成本和预算,从而允许他们决定是执行还是推迟这些操作。各种参数可能影响操作的成本,包括设备是否使用电池电源以及设备所连接的网络类型等。由于使用过少以及此API设计的问题,该提案被撤销。