Web 推送通知(Web Push Notifications)
字数 878 2025-11-21 06:55:10

Web 推送通知(Web Push Notifications)

  1. 基础概念
    Web 推送通知是一种允许网站向用户设备(包括桌面和移动端)发送即时消息的技术,即使用户未主动访问该网站。它基于服务工作者(Service Worker)推送 API(Push API) 实现,通过浏览器与推送服务交互来传递消息。例如,新闻网站可以在突发新闻发生时主动向订阅用户发送通知。

  2. 技术架构与核心组件

  • 服务工作者:作为后台运行的脚本,负责接收推送消息并控制通知的显示。
  • 推送服务:由浏览器厂商提供的中间服务(如 Chrome 的 FCM/Firebase Cloud Messaging),管理消息的路由。网站需将消息发送至推送服务,再由推送服务转发至用户浏览器。
  • 用户授权:网站必须显式请求用户授权(通过 Notification.requestPermission()),获得许可后才能发送通知。
  1. 消息传递流程
  • 订阅:用户授权后,网站通过 PushManager.subscribe() 生成唯一的端点 URL(Endpoint) 和加密密钥。端点 URL 对应推送服务中的用户设备地址。
  • 发送消息:服务器将通知内容(如 JSON 数据)通过 HTTP POST 请求发送至端点 URL,推送服务验证请求后中继消息。
  • 触发通知:服务工作者监听 push 事件,解析消息后调用 showNotification() 在设备上显示通知。用户点击通知可跳转至指定页面。
  1. 数据安全与加密
    为确保隐私,推送内容必须使用 VAPID(Voluntary Application Server Identification) 协议进行加密。服务器需生成一对公私钥,公钥用于订阅时验证身份,私钥用于签名推送请求,防止未授权方冒充网站发送消息。

  2. 实际应用与优化

  • 支持离线通知:服务工作者可缓存消息并在设备联网后显示。
  • 个性化设置:允许用户选择通知类型(如“仅重要提醒”)。
  • 性能考虑:需控制通知频率,避免过度打扰用户导致权限被撤销。
Web 推送通知(Web Push Notifications) 基础概念 Web 推送通知是一种允许网站向用户设备(包括桌面和移动端)发送即时消息的技术,即使用户未主动访问该网站。它基于 服务工作者(Service Worker) 和 推送 API(Push API) 实现,通过浏览器与推送服务交互来传递消息。例如,新闻网站可以在突发新闻发生时主动向订阅用户发送通知。 技术架构与核心组件 服务工作者 :作为后台运行的脚本,负责接收推送消息并控制通知的显示。 推送服务 :由浏览器厂商提供的中间服务(如 Chrome 的 FCM/Firebase Cloud Messaging),管理消息的路由。网站需将消息发送至推送服务,再由推送服务转发至用户浏览器。 用户授权 :网站必须显式请求用户授权(通过 Notification.requestPermission() ),获得许可后才能发送通知。 消息传递流程 订阅 :用户授权后,网站通过 PushManager.subscribe() 生成唯一的 端点 URL(Endpoint) 和加密密钥。端点 URL 对应推送服务中的用户设备地址。 发送消息 :服务器将通知内容(如 JSON 数据)通过 HTTP POST 请求发送至端点 URL,推送服务验证请求后中继消息。 触发通知 :服务工作者监听 push 事件,解析消息后调用 showNotification() 在设备上显示通知。用户点击通知可跳转至指定页面。 数据安全与加密 为确保隐私,推送内容必须使用 VAPID(Voluntary Application Server Identification) 协议进行加密。服务器需生成一对公私钥,公钥用于订阅时验证身份,私钥用于签名推送请求,防止未授权方冒充网站发送消息。 实际应用与优化 支持离线通知:服务工作者可缓存消息并在设备联网后显示。 个性化设置:允许用户选择通知类型(如“仅重要提醒”)。 性能考虑:需控制通知频率,避免过度打扰用户导致权限被撤销。