Chrome上的HTML5桌面推送通知不一致/延迟

时间:2016-05-09 05:59:43

标签: javascript html5 notifications

我正在编写一个聊天网络应用程序,需要能够通过通知API触发桌面推送通知:https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API

不幸的是,似乎通知不会出现,直到我用这个小提琴发出另一个通知才能将其全部清除:https://jsfiddle.net/yoshi6jp/Umc9A/

这是我正在使用的代码:

function triggerDesktopNotification() {
  function makeNotification() {
    var notification = new Notification('AppName', {
      body: 'You have a new message!',
      icon: '/favicon.ico',
    });
    notification.onclick = () => {
      notification.close();
    };
  }

  if (Notification.permission === 'granted') {
    makeNotification();
  }
  else if (Notification.permission !== 'denied') {
    Notification.requestPermission(function (permission) {
      if (permission === 'granted') {
        makeNotification();
      }
    });
  }
}

我可以通过在console.log()电话后立即放置new Notification来确认代码是否正常执行。有趣的是,如果我在其中放置alert(),则会在看到警告框时显示通知(导航回我的标签后)。

1 个答案:

答案 0 :(得分:0)

如果我理解你的话;

警报中断程序堆栈,我认为它放在哪里。你为什么不尝试使用setTimeout函数来启动异步?

 setTimeout(  function(){
       alert("asd");
     })

编辑js fiddle here