【问题标题】:Inconsistent/Delayed HTML5 Desktop Push Notifications on ChromeChrome 上的 HTML5 桌面推送通知不一致/延迟
【发布时间】:2016-09-03 16:02:18
【问题描述】:

我正在编写一个聊天 web 应用程序,它需要能够通过通知 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();
      }
    });
  }
}

我可以通过在new Notification 调用之后立即放置console.log() 来确认代码正在正确执行。有趣的是,如果我将alert() 放在那里,当我看到警告框时(导航回我的标签后)就会显示通知。

【问题讨论】:

    标签: javascript html notifications


    【解决方案1】:

    如果我没听错的话;

    警报中断我认为它放置的程序堆栈。为什么不尝试使用这样的 setTimeout 函数异步触发它?

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

    编辑了 js fiddle here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-23
      • 2015-10-11
      • 2021-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多