从db中删除过期的推送订阅端点,该端点是通过服务工作者创建的

时间:2017-08-14 11:06:26

标签: push-notification notifications service-worker

我使用服务工作者实现了推送通知。我将端点存储在我的数据库中。当前订阅更改/过期时,如何从db中删除旧订阅条目。 " pushsubscriptionchange"我正在服务工作者听。但是,当我将通知订阅更改为"始终阻止此网站时,并未触发#34;在chrome设置中。有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

我不相信通过网站设置撤消通知权限会触发服务工作者的pushsubscriptionchange事件。

相反,我认为您可以做的是检测客户页面中registration.pushManager.subscribe()方法的拒绝。根据{{​​1}}的{​​{1}}的第9步,

  

如果未授予,则拒绝使用名称为DOMException的promise   " NotAllowedError"并终止这些步骤。

因此,我认为您最终能够在您描述的场景中检测到这些内容。

至于在那种情况下要清理哪些订阅端点,我说你应该清理所有这些端点?用户已选择退出通知,因此我不相信任何现有的终端都可以继续使用。