我正在构建一个使用chrome发送网络推送通知的系统。当有人在他们的桌面PC上收到我的推送通知时,他们会看到通知大约10秒钟。如果他们没有点击通知,它将在大约10秒后消失。
我看到其他网站发送不会消失的推送通知。我相信有一些设置我不会用来让我的消息留在屏幕上,直到被点击或退出。有谁知道这个设置或参数?
答案 0 :(得分:0)
您可能想在此SO post中尝试建议的解决方案,其中包含以下步骤:
- 为
chrome.notifications
中提及的所有活动注册听众。- 在隐藏通知后几秒钟(例如30)之后注册超时 - 将
delete
并重新create
通知(因此它有效地保持在屏幕上可见。- 如果在步骤1中设置的任何侦听器触发,则表示用户与通知相互作用,因此取消超时(您无需重新创建通知)。
醇>
有关详细信息,请参阅post。
答案 1 :(得分:0)
您似乎需要使用“ 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);
});
也不要忘记在点击事件中将其关闭:
...稍后在服务工作者脚本中:
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中可以正常工作。