广泛部署的技术

HTML5 的ApplicationCache允许通过定义浏览器保存在缓存中的文件清单来访问Web应用。该功能部署良好,但是这种方法在开发人员能够控制什么时候缓存什么的方面是非常有限的。因为 Service Workers 规范定义了一个更强大的方法,应用缓存特性在 HTML5.1 中已经废弃了。

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

特性规范成熟度现有实现
离线 Web 应用HTML 5.1中的ApplicationCacheREC

已有稳定实现
shipped in firefoxshipped in chromeshipped in edgeshipped in safari

可见性检测页面可见性 (Page Visibility)REC

已有稳定实现
shipped in firefoxshipped in chromeshipped in edgeshipped in safari

开发中的技术

无论是否打包,用户都依靠各种元数据(名称、图标)在常用应用列表中来识别他们想要使用的应用。 Web应用清单规范允许开发人员将所有这些元数据放在一个 JSON 文件中。

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

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

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

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

特性规范成熟度现有实现
打包Web应用清单 (Web App Manifest)WD

开发中
indevelopment in webkitindevelopment in edge

已有稳定实现
shipped in firefoxshipped in chrome

离线 Web 应用Service Workers 1WD

已有实验性实现
experimental in safari

开发中
indevelopment in edge

已有稳定实现
shipped in firefoxshipped in chrome

远程通知推送 API (Push API)WD

开发中
indevelopment in edge

已有稳定实现
shipped in firefoxshipped in chrome

后台同步Web 后台同步 (Web Background Synchronization)ED

开发中
indevelopment in edgeindevelopment in firefox

已有稳定实现
shipped in chrome

探索性工作

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

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

特性规范小组实现意向
打包Web 打包 (Web Packaging)Web 平台孵化社区组 (Web Platform Incubator Community Group)

状态转换Web 生命周期 (A Lifecycle for the Web)Web 平台孵化社区组 (Web Platform Incubator Community Group)

开发中
indevelopment in chrome

不再进行的工作

任务调度
任务调度 API 可以通过与 Web 应用关联的 service worker 在指定的时间触发任务。该规范属于现在已经关闭的系统应用工作组(System Applications Working Group)的范围,因此被搁置了。
地理围栏 API
地理围栏 API 可以在设备进入指定的地理区域时唤醒Web应用。这项工作已经停止,部分原因在于未能找到一种很好的方法来解决有关隐私的权限问题,还因为该 API 依赖于当时还不稳定的 Service Workers。该规范的工作可能会在未来继续,这取决于潜在的实现者的兴趣。