解决方案
早期的 Web Push 可在 Chrome 中运行,但后端路径仍要经过 Firebase Cloud Messaging,并且需要 Google 专属的项目凭据。这让这个开放 API 对需要服务多个浏览器的开发者来说显得不那么开放。
Chrome 在 2016 年的互操作性说明中描述了修复方案:FCM 开始接受标准的 Web Push Protocol,而 VAPID 用公钥/私钥对提供发送方身份验证,取代了 GCM 发送方 ID 和专有的 Authorization 头。
实际结果是只需一条代码路径。Chrome 自己的指南称,VAPID 意味着开发者不再需要 Firebase 项目,并且可以在 Chrome 和 Firefox 中使用相同的订阅和发送流程。
Apple 的 WebKit 后来在 macOS Ventura 上的 Safari 16 中加入了这条标准路径。WebKit 表示,Web Push 由 Push API、Notifications API 和 Service Workers 共同启用,符合标准的网站无需加入 Apple Developer Program 即可触达 Safari 用户。
取得了什么
让推送发送方身份可移植
为什么奏效
它让浏览器推送保持去中心化:每个浏览器都可以运行自己的服务,而应用使用同一套协议。
它用请求中携带的加密身份取代了厂商注册。
它要求用户可见的通知,从而使推送与 Web 的权限模型保持一致。
可以借鉴什么
当一项 Web 标准从常见路径中移除厂商注册步骤时,它就会胜出。
后续影响
在 VAPID 之后,Chrome 和 Firefox 共享了同一条基于标准的发送路径,Safari 也在 2022 年加入了 Web Push 支持。Web 应用可以在各大引擎上通知用户,而无需仅为推送而构建原生应用。
从这里,追溯依据
参考来源
- Web Push Interoperability Wins Chrome for Developers · developer.chrome.com ·
- Meet Web Push WebKit · webkit.org ·