Chrome扩展程序通知仅显示一次

时间:2014-12-05 11:50:47

标签: javascript google-chrome google-chrome-extension firebase

我的目标是在firebase中的值更改时使用Chrome扩展程序创建通知 使用下面的代码,我会在第一次更改值时收到通知,但不是以下时间。

f.on('child_changed', function (snapshot) {
  ignoreInitialData = false;
  var options = {
    type: 'basic',
    iconUrl: '../../icons/green.png',
    title: "Availability notifier",
    message: snapshot.val(),
    contextMessage: "",
    eventTime: Date.now(),
    isClickable: false,
  };
  chrome.notifications.create("child_changed", options, function (notificationID) {
    console.error(chrome.runtime.lastError);
  });
});

任何解决方案?

2 个答案:

答案 0 :(得分:6)

由于您使用的是固定通知ID,因此已更新,而非创建新通知ID。

如果通知未关闭但隐藏在Chrome通知中心,则 将再次显示。

您的选择包括:

  • 未使用固定ID(将""作为ID传递)
    这将导致旧通知和新通知都被保留,直到被解雇。可能不是你想要的。

  • Closing the old notification就在展示一个新的之前 这种方法效果很好,但如果您的旧通知尚未消失,则会产生视觉冲突。但是,如果你想强调一下,你可能真的想要这个效果"这是新信息"

  • 使用priority change trick to re-show the notification
    这效果最好,但是" hacky"。我们只希望Chrome API能够改进本地化。

答案 1 :(得分:1)

您还可以添加时间戳后缀,以便每个通知都不同:

var timestamp = new Date().getTime();
var id = 'myid' + timestamp;