Chrome扩展:创建一个新的标签后,点击通知

Chrome extension: Creating a new tab after clicking on the notification

本文关键字:标签 通知 一个 创建 扩展 Chrome      更新时间:2023-09-26
function notify(notifyMessage) {
    var options = {
        type: "basic",
        title: "My Extension",
        message: notifyMessage,
        iconUrl: "hello.png"
      };
    chrome.notifications.create("", options, function(notificationId) {
      setTimeout(function(){
        chrome.notifications.clear(notificationId, function(){});
      }, 2000);
    });
    chrome.notifications.onClicked.addListener(function(notificationId, byUser) {
        chrome.tabs.create({url: "http://www.google.com"});
    });
}

使用此功能,当我第一次触发notify并单击通知时,它会创建一个选项卡。当我第二次触发它并单击时,它会创建两个选项卡,等等。我应该如何重新组织我的代码,使它每次只创建一个选项卡?

chrome.notifications.onClicked.addListener方法将onclick侦听器添加到每个由扩展打开的通知。每次调用该方法都会为所有添加另一个onclick侦听器:如果您调用该方法3次,则每个通知将有3个单击侦听器,每个将打开一个选项卡。

要修改代码,只需在notify函数之外添加click处理程序,只添加一个onclick侦听器。

注意:在点击监听器中指定的回调将被传递给实际点击的通知的通知id,这样如果你同时打开几个通知,你可以区分通知。

通知id为chrome.notifications.create的第一个参数。在这里,您总是传递"",所以您总是最多打开一个通知。