如果聚焦并将其带到前台,我如何隐藏我的网站正在显示的通知?

时间:2016-03-08 04:56:37

标签: web-push progressive-web-apps

背景信息:我正在构建一个渐进的Web应用程序,它可以向服务工作者发送用户推送通知。

有没有办法确保用户浏览我的网站时,通知当前是否显示隐藏了通知?

我想避免他们导航到我的网站并且通知仍在显示的情况,现在已经过时了。

1 个答案:

答案 0 :(得分:3)

是的,从文档中您可以清除当前显示的所有通知:

// From a document.
navigator.serviceWorker.ready.then(registration => {
    registration.getNotifications().then(notifications =>
        notifications.forEach(notification => notification.close()));
});

您可以选择在每次加载页面时简单地运行此代码来解决您的情况,或者您可以另外向运行此代码的文档添加focus事件侦听器,以确保每次您的站点都应用它被引起关注。