Chome推送通知在几秒钟后消失

时间:2017-04-03 21:14:18

标签: google-chrome push-notification google-cloud-messaging push chrome-gcm

我正在构建一个使用chrome发送网络推送通知的系统。当有人在他们的桌面PC上收到我的推送通知时,他们会看到通知大约10秒钟。如果他们没有点击通知,它将在大约10秒后消失。

我看到其他网站发送不会消失的推送通知。我相信有一些设置我不会用来让我的消息留在屏幕上,直到被点击或退出。有谁知道这个设置或参数?

2 个答案:

答案 0 :(得分:0)

您可能想在此SO post中尝试建议的解决方案,其中包含以下步骤:

  
      
  1. chrome.notifications中提及的所有活动注册听众。
  2.   
  3. 在隐藏通知后几秒钟(例如30)之后注册超时 - 将delete并重新create通知(因此它有效地保持在屏幕上可见。
  4.   
  5. 如果在步骤1中设置的任何侦听器触发,则表示用户与通知相互作用,因此取消超时(您无需重新创建通知)。
  6.   

有关详细信息,请参阅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中可以正常工作。