Web /桌面通知API - 在刷新页面时强制关闭所有通知

时间:2015-06-04 12:07:39

标签: javascript html5 notifications service-worker web-notifications

我一直在关注Web Notification API或桌面通知API。我理解它是如何构造的以及它支持的属性和事件的数量。这些通知应与浏览器分开,即使浏览器已最小化,例如仍可显示通知。

我的问题是,有没有办法将通知与网页上的操作相关联?特别是,我想在刷新页面时关闭所有通知对话框。我怎样才能做到这一点?

提前致谢。

1 个答案:

答案 0 :(得分:3)

您没有提及服务工作者,但我会假设您有一个服务工作者,因为您需要它来推送和通知API。

页面加载后,您可以向服务工作人员发送一条消息,指示其关闭所有通知。然后你可以在工作人员中这样做:

self.getNotifications().then(function(notifications){
  notifications.forEach(function(notification){
    notification.close()
  })
})

但是,您可以跳过服务工作人员的消息,只需通过服务工作者注册从页面执行此操作,如下所示:

navigator.serviceWorker.getRegistration().then(function(registration){
  registration.getNotifications().then(function(notifications){
    notifications.forEach(function(notification){
      notification.close()
    })
  })
})

但是,请注意getNotifications()仅适用于Chrome 44.在Chrome 44或其他浏览器之前,我不相信有办法做你想做的事。