3

根据规范,一个pushsubscriptionchange事件表示“推送订阅已失效,或即将失效”。处理此事件的最佳做法是什么?

4

2 回答 2

3
  1. 完全在 service worker 中处理重新订阅。在触发事件时,可能没有与服务工作者相关联的客户端(即打开的页面)——不要postMessage()用于触发来自客户端的重新订阅。
  2. 实现可能会在一段时间内(可能是几天)兑现旧订阅。虽然规范没有做出这样的保证,但实现很可能会在一段时间内同时支持旧密钥和新密钥,以减少/消除由于所涉及的客户端或服务器之一未收到“新”密钥而丢弃消息的机会.
  3. 截至 2016 年 4 月,Chrome 和 Firefox 都不会触发此事件。但是,由于它在规范中,为了确保用户继续接收消息,您应该确保正确处理它。
于 2016-04-13T14:49:34.867 回答
2

您可以在此处找到有关处理pushsubscriptionchange事件的完整详细说明,其中包含您必须处理的一些陷阱。喜欢:

  • 推送订阅更改目前未在 Chrome 中实现。
  • PushSubscriptionChangeEvent始终为空。oldSubscription如果您想在服务器中替换它,您将无法使用。

如何在现代浏览器中处理 WebPush API PushSubscriptionChange 事件

于 2019-03-18T22:55:33.023 回答