Chrome 不会关闭通知

Posted

技术标签:

【中文标题】Chrome 不会关闭通知【英文标题】:Chrome doesn't close the notification 【发布时间】: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); 

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

【问题讨论】:

【参考方案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"
                            ;

【讨论】:

以上是关于Chrome 不会关闭通知的主要内容,如果未能解决你的问题,请参考以下文章

Chrome的网络推送通知[关闭]

chrome浏览器中选项设置中有一个“关闭Google Chrome 浏览器后继续运行后台应用程序”,这个最好怎么设置?

chrome扩展通知中的Json文件内容[关闭]

在 Chrome 或 Firefox 中从已关闭的 Web 应用程序发送桌面通知?

节点 - 浏览器关闭时推送通知

浏览器关闭时的通知