桌面通知未出现在Chrome中

时间:2018-10-26 15:11:31

标签: javascript html5 google-chrome notifications

我已经验证Notification.permission === 'granted''Notification' in window == true(尽管以下Javascript不会在我的Chrome浏览器版本70.0.3538.77(正式内部版本)(64位)中发出通知) 。

var notif = new Notification('title', {
    icon: 'https://placehold.it/120x120',
    body: 'body'
});

我已经在我以前允许桌面通知的网站上的Chrome控制台中执行了上述操作。我还验证了在以下位置将其设置为“允许”:Notifications set to Allow

3 个答案:

答案 0 :(得分:2)

好的,我在写是为了防止有人觉得它有用。

我也遇到了这个问题,我尝试different sites失败了。但是,@Don Reptile的答案向我暗示了可能出了什么问题(我阻止了本机通知)。

我在Windows 10上,这是我从Chrome启用本机通知的地方。

Enable Windows Native Notifications

答案 1 :(得分:0)

未打开对话框的问题是 http 。 Chrome桌面通知仅适用于 https 协议。

我已经遇到了这个问题,并且花了很多时间来解决这个问题。终于我用https解决了。

我在这里共享了代码,因此您可以在https上运行,它将正常工作。

// request permission on page load
document.addEventListener('DOMContentLoaded', function() {
  if (!Notification) {
    alert('Desktop notifications not available in your browser. Try Chromium.');
    return;
  }

  if (Notification.permission !== "granted")
    Notification.requestPermission();
});

function notifyMe() {
  if (Notification.permission !== "granted")
    Notification.requestPermission();
  else {
    var notification = new Notification('Notification title', {
      icon: 'http://cdn.sstatic.net/stackexchange/img/logos/so/so-icon.png',
      body: "Hey there! You've been notified!",
    });

    notification.onclick = function() {
      window.open("http://stackoverflow.com/a/13328397/1269037");
    };
  }
}

notifyMe();

致电notifyMe();以显示通知

答案 2 :(得分:0)

最近有同样的问题。对我来说,解决方案是在chrome:// flags中禁用“启用本机通知”。我之所以无法看到通知,是因为浏览器想要显示本机通知,并且我禁用了所有Windows通知。希望以后能对某人有所帮助:)