chrome通知取消订阅活动

时间:2018-02-11 08:02:20

标签: javascript google-chrome push-notification service-worker web-push

是否可以捕获取消订阅事件?

这是用于订阅用户通知的代码

if ('serviceWorker' in navigator) {
    navigator.serviceWorker.ready.then(function(reg) {
      reg.pushManager.subscribe({
        userVisibleOnly: true
      }).then(function(sub) {
          add_endpoint_to_db( sub ); // im adding the user deatils to my db
      }).catch(function(e) {
        if (Notification.permission === 'denied') {

        } else {

        }
      });
  });

}

如果用户选择手动删除通知

Notification removal

我想抓住这个动作,以便从DB中删除他的条目

那么可以捕获通知更改事件吗?

2 个答案:

答案 0 :(得分:2)

您正在寻找pushsubscriptionchange活动

self.addEventListener('pushsubscriptionchange', function() {
  // remove the entry from DB
});

答案 1 :(得分:0)

取消订阅是可以通过设置标签和离线模式完成的浏览器设置,因此您无法获取该信息

但是一旦用户取消订阅(即删除了服务工作者注册),那么在发送下一条消息时,您应该从FCM API收到失败消息。(如果您使用的是firebase)

所以想想这样......:)