进阶
目标: 一个使用平台能力——推送、文件处理、更深的 OS 集成——却不会在缺少这些能力的 引擎上崩坏的 PWA。这一层的核心纪律是渐进增强:每一项进阶能力都先检测支持, 缺失时优雅降级。
先完成核心路径——入门、可安装、 离线、性能——再来碰这些。
每个进阶特性的通则
Section titled “每个进阶特性的通则”-
特性检测,绝不假设。 在使用前用
in/typeof检查守护每项能力。 -
验证真实支持。 规范里存在某能力,不等于它在你用户的浏览器上可用。在依赖之前, 查阅相应的兼容性矩阵——从 按特性开始。
-
优雅降级。 缺少某能力时,应用应失去该特性,而非崩坏。在发布增强之前先规划好回退。
可以接入的能力
Section titled “可以接入的能力”Web Push 通知。 用服务端消息重新触达用户。支持情况与 iOS「仅已安装」约束都很现实—— 在构建订阅流程前阅读 web-push 兼容性数据与 通知参考。
File System Access。 为类编辑器应用读写用户选择的文件。这是支持最不均衡的能力之一, 因此回退(下载/上传)是必需的——见 File System Access 参考及其 兼容性数据。
Background Sync。 延迟并重放离线时的写入。当作增强;在 background-sync 兼容性数据中确认支持。
角标。 在应用图标上呈现未读状态。通过 角标兼容性数据确认。
- Service Worker 更新。 提供刻意设计的更新流程,使用户不被困在陈旧 worker 上——
生命周期参考覆盖
waiting、skipWaiting与更新提示。 - 存储持久性。 为必须存活于驱逐的数据请求持久化存储;见 存储持久化。
- 平台怪癖。 iOS 偏离最多;把 iOS / Safari 平台说明放在手边。
← 返回指南总览。