删除 chrome 扩展中的 chrome.alarms 监听器

fxt*_*ade 1 javascript google-chrome google-chrome-extension

在 Chrome 扩展中,使用以下示例代码可以非常轻松地创建警报并向其添加侦听器:

chrome.alarms.create(idAlarm, {
    when: dateAlarm,
    periodInMinutes: parseInt(repeatAlarm)
});
chrome.alarms.onAlarm.addListener(function (alarm) {
  //TODO with Listener (when alarm is activated)
)};
Run Code Online (Sandbox Code Playgroud)

但是,稍后,如果我打电话

crome.alarms.clear(idAlarm);
Run Code Online (Sandbox Code Playgroud)

警报已清除,但侦听器仍处于活动状态。“即时”删除特定警报的侦听器的最佳方法是什么?

我想我必须打电话chrome.alarms.onAlarm.removeListener(),但没有找到使此通话有效的方法。

Max*_*uxa 5

我绝对不是 chrome 扩展方面的专家(从来没有写过),但是查看文档,我认为您必须命名侦听器函数,然后像这样执行:

function alarmListener(alarm) {
    if (alarm == "myAlarmIdentifier") {
        // Do stuff.
    }
}
chrome.alarms.create("myAlarmIdentifier", {
    when: dateAlarm,
    periodInMinutes: parseInt(repeatAlarm)
});
chrome.alarms.onAlarm.addListener(alarmListener);
Run Code Online (Sandbox Code Playgroud)

然后删除警报并删除监听器

chrome.alarms.clear("myAlarmIdentifier");
chrome.alarms.onAlarm.removeListener(alarmListener);
Run Code Online (Sandbox Code Playgroud)