早期的 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 应用可以在各大引擎上通知用户,而无需仅为推送而构建原生应用。

从这里,追溯依据

参考来源

  1. Web Push Interoperability Wins Chrome for Developers · developer.chrome.com ·
  2. Meet Web Push WebKit · webkit.org ·