网页
综合
更新时间 2024-12-04 14:43:57
Push API - Web API | MDN
自动蜘蛛
developer.mozilla.org
正文约 1637 字
HTML: Markup language
CSS: Styling language
JavaScript: Scripting language
Web APIs: Programming interfaces
Learn web development
Get to know MDN better
此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。
View in English Always switch to English
自 2023年3月 起,此特性已在主流浏览器中得到支持,可在大多数设备和浏览器版本中正常使用。
备注: 此特性在 Web Worker 中可用。
Push API 给与了 Web 应用程序接收从服务器发出的推送消息的能力,无论 Web 应用程序是否在用户设备前台,甚至刚加载完成。这样,开发人员就可以向用户投放异步通知和更新,从而让用户能更及时地获取新内容。
警告:在实现 PushManager 订阅时,请确保你的应用程序免受 CSRF/XSRF(跨站请求伪造)问题。参见以下的文章以了解更多信息:
对于一个应用来说,要想要接收到推送消息,需要有一个激活的 service worker。当 service worker 处于激活状态时,可以使用 PushManager.subscribe() 来订阅推送通知。
返回的 PushSubscription 包含了有关应用需要发送的推送消息的所有信息:端点及发送数据需要的加密密钥。
Service worker 会在必要的时候启动并接收传入的推送消息,将其传递给 onpush 事件处理器。该方法允许应用程序在接收到推送消息时作出反应,例如显示一条通知(使用 ServiceWorkerRegistration.showNotification())。
每一个订阅对 service worker 来说都是唯一的。同时订阅的端点也是一个唯一的功能性 URL:端点的信息是给应用发送信息的全部必要条件。所以端点地址需要保密,否则其他应用也可以向你的应用推送消息。
激活一个 service worker 来提供推送消息会导致资源消耗的增加,尤其是电池。不同的浏览器对此有不同的方案——目前为止还没有标准的机制。Firefox 允许对发送给应用的推送消息做数量限制(配额),但生成通知的推送消息不受此限制。该限制会在站点每一次被访问之后刷新。相比之下,Chrome 选择不作限制。
表示发送到 ServiceWorker 全局全局作用域的推送操作。它包含了从应用程序发送到 PushSubscription 的消息。
提供一种从第三方服务器接收通知和用于推送通知的请求 URL 的方法。
提供对服务器发送的推送数据的访问,包括在接收数据时对数据进行操作的方法。
提供一个订阅的端点 URL,并允许取消推送服务的订阅。
以下附加到 Service Worker API 的内容已在 Push API 规范中定义,以提供使用推送消息的入口点。它们用于监听和响应推送和订阅改变的事件。
返回对 PushManager 接口的一个引用,该接口用于管理 push 订阅,包括:订阅、获取一个活跃的订阅、获取 push 权限的状态。这是使用接收推送消息能力的入口点。
一个在 push 事件被触发时(即收到服务器的推送消息时)的事件处理器。
一个在 pushsubscriptionchange 事件被触发时(例如,推送服务器设置了过期时间,因而造成推送订阅已经或即将失效)的事件处理器。
Mozilla 的 ServiceWorker Cookbook 中包含了许多关于 Push 有用的示例。
此页面最后更新于 2024年12月4日,由 MDN 贡献者更新。
本内容的部分版权归 mozilla.org 贡献者所有,©1998–2026。内容依据知识共享许可协议提供。
本页为82搜索生成的网页快照,内容来自站内索引;演示数据的原文链接仅作示例。