【问题标题】:Chrome doesn't close the notificationChrome 不会关闭通知
【发布时间】:2014-05-20 12:01:13
【问题描述】:

我目前正在使用此实现来使用基于浏览器的通知:
https://developer.mozilla.org/en-US/docs/Web/API/Notification

这就像一个魅力。

if ("Notification" in window) {
        if(Notification.permission === "granted") {
            if($('#notify-on-message').is(':checked')) {
                var notification = new Notification(username + ' : ' + data, {'icon': "/custom/favicon.gif"});
            }
            if ($('#notify-on-hl').is(':checked')) {
                var patt = new RegExp("(^|\\W)"+selfusername+"(\\W|$)");
                if(patt.test(data)) {
                    var notification = new Notification(username + ' highlighted you.', {'icon': "/custom/favicon.gif"});
                }
            }
        }
    }

我遇到的主要问题是,在基于 chrome 的浏览器上,通知在 3 秒延迟后不会自行关闭。
它尝试在var notification = ... 之后添加这个

setTimeout(function() {
    notification.close();
}, 2000);

虽然这并没有改变一件事。通知仍然存在。
这是一个已知问题吗?有没有一种简单的方法来解决我不想要的这种行为?

编辑 1: 根据这个页面:
https://developer.mozilla.org/en-US/docs/WebAPI/Using_Web_Notifications
这是一个已知问题:

注意:Firefox 和 Safari 会在片刻后自动关闭通知,例如4 秒。

这也可以使用 Notification.close() 方法在 Web 应用程序级别完成,例如使用以下代码:

var n = new Notification("Hi!");
n.onshow = function () { 
    setTimeout(n.close, 5000); 
}

虽然该代码不起作用。控制台中有错误提示通知没有关闭方法或类似的东西。

【问题讨论】:

    标签: javascript google-chrome firefox notifications


    【解决方案1】:

    其实我错了,代码

    var message_notification = new Notification("Data");
    setTimeout(function(){
        message_notification.close();
    }, 3000); 
    

    适用于 Firefox 和 Chrome。 (我猜也是 Safari)

    【讨论】:

    • 仍然很好奇为什么广告方式 (.onshow) 不起作用。
    • 可能文档不是最新的,或者我使用的是不同的版本。记不太清了^^"
    【解决方案2】:

    向选项添加标签将在显示新的一次之前关闭活动弹出窗口

                                var options = {
                                    body: msg,
                                    icon: "logo.png",
                                    dir: "ltr",
                                    tag: "group1"
                                };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-26
      • 2011-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-22
      • 1970-01-01
      相关资源
      最近更新 更多