Push notification 从通过service worker创建的数据库中删除过期的推送订阅终结点

Push notification 从通过service worker创建的数据库中删除过期的推送订阅终结点,push-notification,notifications,service-worker,Push Notification,Notifications,Service Worker,我使用服务工作者实现了推送通知。我正在数据库中存储端点。当前订阅更改/过期时,如何从db中删除旧订阅条目。“pushsubscriptionchange”事件我正在服务工作者中侦听。但当我在chrome设置中将通知订阅更改为“始终阻止此站点”时,它不会被触发。有什么帮助吗?我不相信通过站点设置取消通知权限会触发服务工作者的pushsubscriptionchange事件 相反,我认为您可以做的是从您的客户端页面检测拒绝注册.pushManager.subscribe()方法。根据forsubsc

我使用服务工作者实现了推送通知。我正在数据库中存储端点。当前订阅更改/过期时,如何从db中删除旧订阅条目。“pushsubscriptionchange”事件我正在服务工作者中侦听。但当我在chrome设置中将通知订阅更改为“始终阻止此站点”时,它不会被触发。有什么帮助吗?

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

相反,我认为您可以做的是从您的客户端页面检测拒绝注册.pushManager.subscribe()方法。根据for
subscribe()
的步骤9

如果未授予,则以名称为的DomeException拒绝承诺 “NotAllowedError”并终止这些步骤

所以我认为这就是你最终能够在你描述的场景中检测到的


至于在这种情况下要清理哪些订阅端点,我认为您应该清理所有订阅端点?用户已选择退出通知,因此我不相信任何现有端点会继续使用。

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

相反,我认为您可以做的是从您的客户端页面检测拒绝注册.pushManager.subscribe()方法。根据for
subscribe()
的步骤9

如果未授予,则以名称为的DomeException拒绝承诺 “NotAllowedError”并终止这些步骤

所以我认为这就是你最终能够在你描述的场景中检测到的

至于在这种情况下要清理哪些订阅端点,我认为您应该清理所有订阅端点?用户已选择退出通知,因此我不相信任何现有端点会继续使用