我一直在关注Web Notification API或桌面通知API。我理解它是如何构造的以及它支持的属性和事件的数量。这些通知应与浏览器分开,即使浏览器已最小化,例如仍可显示通知。
我的问题是,有没有办法将通知与网页上的操作相关联?特别是,我想在刷新页面时关闭所有通知对话框。我怎样才能做到这一点?
提前致谢。
答案 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或其他浏览器之前,我不相信有办法做你想做的事。