【问题标题】: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 中运行良好。

    【讨论】:

      【解决方案2】:

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

      1. chrome.notifications中提到的所有事件注册监听器。
      2. 在几秒钟后(例如 30 秒)注册一个超时 - 隐藏通知后 - 将 delete 和重新create 通知(因此它有效地保持在屏幕上可见。
      3. 如果在步骤 1 中设置的任何侦听器触发,则表示用户与通知进行了交互,因此请取消超时(您无需重新创建通知)。

      请参阅post 了解更多信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-26
        • 1970-01-01
        • 1970-01-01
        • 2021-05-12
        相关资源
        最近更新 更多