【问题标题】:Chome push notifications disappearing after a couple secondsChrome 推送通知在几秒钟后消失
【发布时间】:2017-04-03 21:14:17
【问题描述】:
我正在构建一个使用 chrome 发送网络推送通知的系统。当有人在他们的台式电脑上收到我的推送通知时,他们会看到通知大约 10 秒钟。如果他们不点击通知,它会在大约 10 秒后消失。
我看到其他网站发送的推送通知不会消失。我相信我没有使用某些设置来使我的消息在单击或退出之前一直保留在屏幕上。有谁知道这个设置或参数吗?
【问题讨论】:
标签:
google-chrome
push-notification
google-cloud-messaging
push
chrome-gcm
【解决方案1】:
您似乎需要使用“requireInteraction”选项在您的服务工作者中创建通知。只需将其设置为“true”即可表示您需要用户交互的浏览器。这是你如何做到这一点的。
...在您创建通知时的服务工作者脚本中:
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);
});
别忘了在点击事件时关闭它:
...稍后在 service worker 脚本中:
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 中运行良好。