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

Dal*_*uca 2 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);
  });
});
Run Code Online (Sandbox Code Playgroud)

有解决方案吗

Xan*_*Xan 6

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

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

您的选择包括:

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

  • 在显示新通知之前关闭旧通知.
    这种方法效果很好,但如果您的旧通知尚未消失,则会产生视觉冲突.但是,如果你想强调"这是新信息",你可能真的想要这种效果

  • 使用优先级更改技巧重新显示通知.
    这效果最好,但是"hacky".我们只希望Chrome API可以改进本地执行此操作.