【问题标题】:How to add onClosed event listener from Chrome notifications API for chrome extension in javascript?如何从 Chrome 通知 API 为 JavaScript 中的 Chrome 扩展添加 onClosed 事件监听器?
【发布时间】:2023-01-10 10:32:38
【问题描述】:

我想知道如何在关闭 Chrome 通知时添加监听器。这是我的代码:

chrome.notifications.onClosed.addListener(function (notifId, byUser) {
  console.log(byUser);
  console.log("notification closed");
});

我只是暂时尝试记录事件,但我似乎无法理解为什么在关闭通知时没有任何记录。我已经检查了官方文档,看来我的调用是正确的。

经过一定的时间(我想大概是 20-30 分钟?),它似乎最终根据日志的这个屏幕截图一次注册了所有关闭的事件,也许是我关闭它的所有时间?

我还应该提到其他 chrome 通知事件工作正常,即 chrome.notifications.onButtonClicked.addListener() 工作,chrome.notifications.onClicked.addListener() 也工作。

我似乎可以“强制”调用侦听器执行的唯一方法是调用 chrome.notifications.onClosed.dispatch(); 这证明了监听器是有效的,它只是没有在监听,哈哈。

【问题讨论】:

    标签: javascript google-chrome-extension


    【解决方案1】:

    看起来您正在尝试使用 chrome.notifications.onClosed 事件来跟踪通知何时关闭。

    要为此事件添加事件监听器,您可以使用 addListener 方法,如下所示:

    chrome.notifications.onClosed.addListener(function (notificationId, byUser) {
      console.log(notificationId);
      console.log(byUser);
      console.log("Notification closed");
    });
    

    notificationId参数是关闭的通知的ID,byUser参数是一个boolean值,表示通知是用户关闭的还是系统关闭的。

    请注意 onClosed 事件仅在系统关闭通知时触发,而不是由用户关闭。要跟踪通知何时被用户关闭,您应该改用 onButtonClicked 或 onClicked 事件。

    例如,您可以使用 onButtonClicked 事件来跟踪通知上的关闭按钮何时被单击,如下所示:

    chrome.notifications.onButtonClicked.addListener(function (notificationId, buttonIndex) {
      console.log(notificationId);
      console.log(buttonIndex);
      console.log("Notification closed by user");
    });
    

    或者,您可以使用 onClicked 事件来跟踪通知本身何时被单击,如下所示:

    chrome.notifications.onClicked.addListener(function (notificationId) {
      console.log(notificationId);
      console.log("Notification clicked by user");
    });
    

    【讨论】:

      猜你喜欢
      • 2014-10-27
      • 2013-11-30
      • 2020-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多