chrome扩展 - 停止同时显示多个通知

时间:2017-02-09 01:14:58

标签: javascript google-chrome-extension notifications web-worker

我无法弄清楚如何阻止我的Chrome扩展程序同时显示多个通知。目前,该扩展程序允许用户设置最多5个警报时间,这将导致显示通用通知。

当我设置多个闹钟然后让我的Mac进入睡眠状态时,会出现问题。如果我在闹钟时间过后唤醒电脑,再过10-20秒,所有通知都会同时显示在屏幕上:

背景页面的控制台显示这些通知在相隔几毫秒的时间内出现,即​​使它们是由相隔一分钟的警报触发的。

screenshot of console log

我编写了一些简单的代码,可以在显示新通知之前清除待处理的待处理通知,但此代码并不能阻止计算机处于睡眠状态时的这种特殊情况。 (它适用于其他情况,其中同步通知会追溯显示,例如当用户使用其他应用程序全屏并返回到chrome时。)

以下是我删除“待处理”通知的代码:

chrome.notifications.getAll(function(notifications) {
  // clear out any notifications already pending so there's no dupes!
  Object.keys(notifications).forEach(function(notificationID) {
    console.log("clearing notification ID: " + notificationID);
    chrome.notifications.clear(notificationID);
  });
});

我不确定chrome是如何在后台处理通知和警报的。如何阻止通知同时出现的任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

谢谢@wOxxOm,这很有用!

我确实需要在原始闹钟时间内添加几秒钟才能使比较正常工作:

component