广泛部署的技术
HTML5 的ApplicationCache
允许通过定义浏览器保存在缓存中的文件清单来访问Web应用。该功能部署良好,但是这种方法在开发人员能够控制什么时候缓存什么的方面是非常有限的。因为 Service Workers 规范定义了一个更强大的方法,应用缓存特性在 HTML5.1 中已经废弃了。
页面可见性规范允许开发者检测他们的应用何时在前台,从而相应地调整他们的操作和资源消耗。
特性 | 规范 | 成熟度 | 现有实现 |
---|---|---|---|
离线 Web 应用 | HTML 5.1中的ApplicationCache | 已有稳定实现 | |
可见性检测 | 页面可见性 (Page Visibility) | 已有稳定实现 |
开发中的技术
无论是否打包,用户都依靠各种元数据(名称、图标)在常用应用列表中来识别他们想要使用的应用。 Web应用清单规范允许开发人员将所有这些元数据放在一个 JSON 文件中。
Service Workers 规范描述了一种方法,该方法使应用能够利用持久的后台处理,为离线运行应用打开了大门。
Service Workers 不仅可以使 Web 应用在离线或网络条件较差的情况下无缝地脱机工作,它还创建了一个模型可以使 Web 应用在浏览器窗口未打开,或者浏览器本身未运行时也能进行操作。这种能力为在后台运行 Web 应用打开了大门,并且可以对远程触发的事件作出反应。
推送 API 使 Web 应用能够订阅远程通知,并在接收到后唤醒应用。长期以来,原生应用受益于这些通知带来的更多的用户参与。
Web 后台同步规范建立在 Service Workers 之上,通过在后台运行网络操作,使 Web 应用能够无缝地保持用户数据的最新状态,从而适应用户在移动设备上可能经常遇到的不可靠的连接。
特性 | 规范 | 成熟度 | 现有实现 |
---|---|---|---|
打包 | Web应用清单 (Web App Manifest) | 开发中 已有稳定实现 | |
离线 Web 应用 | Service Workers 1 | 已有实验性实现 开发中 已有稳定实现 | |
远程通知 | 推送 API (Push API) | 开发中 已有稳定实现 | |
后台同步 | Web 后台同步 (Web Background Synchronization) | 开发中 已有稳定实现 |
探索性工作
Web 打包文档描述了用于网站和应用的新包格式的用例,并概述了这种格式。
在移动设备上运行的应用可以通过不同的状态,从运行到空闲、暂停、停止、丢弃或终止。这些状态之间的转换由底层操作系统触发,并从 Web 应用中隐藏。Web 生命周期方案旨在向应用公开状态转换,以便这些应用能够保持/恢复状态、启用/禁用网络等。
特性 | 规范 | 小组 | 实现意向 |
---|---|---|---|
打包 | Web 打包 (Web Packaging) | Web 平台孵化社区组 (Web Platform Incubator Community Group) | 无 |
状态转换 | Web 生命周期 (A Lifecycle for the Web) | Web 平台孵化社区组 (Web Platform Incubator Community Group) | 开发中 |
不再进行的工作
- 任务调度
- 任务调度 API 可以通过与 Web 应用关联的 service worker 在指定的时间触发任务。该规范属于现在已经关闭的系统应用工作组(System Applications Working Group)的范围,因此被搁置了。
- 地理围栏 API
- 地理围栏 API 可以在设备进入指定的地理区域时唤醒Web应用。这项工作已经停止,部分原因在于未能找到一种很好的方法来解决有关隐私的权限问题,还因为该 API 依赖于当时还不稳定的 Service Workers。该规范的工作可能会在未来继续,这取决于潜在的实现者的兴趣。