chrome 通知取消订阅事件

chrome notifications unsubscribe event

是否可以捕获退订事件?

这是我用来订阅用户通知的代码

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 {

        }
      });
  });

}

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

我想捕捉动作以便从数据库中删除他的条目

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

您正在寻找 pushsubscriptionchange 活动

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

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

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

所以这样想.... :)