我正在构建一个系统来使用 Chrome 发送网络推送通知。当某人在台式电脑上收到我的推送通知时,他们会看到该通知大约 10 秒钟。如果他们不点击通知,该通知将在大约 10 秒后消失。
我看到其他网站发送的推送通知不会消失。我相信我没有使用某些设置来使我的消息保留在屏幕上,直到单击或退出。有人知道这个设置或参数吗?
最佳答案
看来您需要使用“requireInteraction”选项在服务工作线程中创建通知。只需将其设置为“true”即可表示您需要用户交互的浏览器。以下是执行此操作的方法。
...创建通知时在 Service Worker 脚本中:
self.addEventListener('push', function(e) {
var notification = self.registration.showNotification(
"Hi! Click me!",
{
requireInteraction: true,
body: "I'm not going to disappear"
}
);
e.waitUntil(notification);
});
另外不要忘记在点击事件时关闭它:
...稍后在服务工作线程脚本中:
self.addEventListener('notificationclick', function(e) {
e.preventDefault();
e.notification.close();
// Do click actions
});
浏览器可比性:不幸的是,并不是每个人都支持此选项:Firefox 不支持。有关详细信息,请参阅 Mozilla 引用:https://developer.mozilla.org/en-US/docs/Web/API/notification/requireInteraction
但它在 Chrome 中运行良好。
关于google-chrome - Chrome 推送通知几秒钟后消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43194394/