Chrome API 页面刷新后警报停止
Chrome API Alarm stops after page refresh
四处阅读,给我的印象是 Chrome 警报即使在 Chrome 关闭、页面刷新等之后仍继续工作。来自 Google 结果之一:
With the Chrome alarm APIs, you can set an alarm that lasts as long as
the app is installed, even if its background page goes inactive.
我的问题是我在 options.js 页面中为 Chrome 分机设置了 Chrome 警报。保存选项页面时创建警报 (chrome.alarms.create)。
如果我保持页面打开,闹钟会起作用。但是,如果我重新加载页面 (options.html),我就不会再收到警报了。
这是我的一部分options.js
$('#save-options-button').on('click', function() {
//Clears existing alarm
chrome.alarms.clearAll();
//Create alarm
chrome.alarms.create("fetchAlarm", {
delayInMinutes: 1,
periodInMinutes: 1
});
chrome.alarms.onAlarm.addListener(function(alarm) {
console.log("Got an alarm!", alarm);
});
});
我猜你是在引用 Chrome Apps 文档,这就是它变得混乱的原因。
意思是 event pages (a type of background page) 将被唤醒以服务于警报事件,即使它们因空闲而被卸载。
这仅适用于event/background页。 Chrome不会因为页面过去监听的某个事件发生就随机打开一个页面。因此,您不应将实际的事件侦听器逻辑放入 UI 页面(选项、弹出窗口等)
在您的情况下,刷新页面会使包含侦听器的 JS 上下文与其一起被销毁,并且您的逻辑仅在单击后添加侦听器。即使您将 addListener
添加到顶层代码,它也只会在页面打开时起作用。
因此,您将需要添加一个后台页面来为该事件(实际的侦听器)提供服务。
后台页面通常随时准备好回答事件。事件页面的特殊之处在于 Chrome 记住哪些事件应该触发它们的加载并且不会保持它们加载。您可以阅读更多相关信息 。
四处阅读,给我的印象是 Chrome 警报即使在 Chrome 关闭、页面刷新等之后仍继续工作。来自 Google 结果之一:
With the Chrome alarm APIs, you can set an alarm that lasts as long as the app is installed, even if its background page goes inactive.
我的问题是我在 options.js 页面中为 Chrome 分机设置了 Chrome 警报。保存选项页面时创建警报 (chrome.alarms.create)。
如果我保持页面打开,闹钟会起作用。但是,如果我重新加载页面 (options.html),我就不会再收到警报了。
这是我的一部分options.js
$('#save-options-button').on('click', function() {
//Clears existing alarm
chrome.alarms.clearAll();
//Create alarm
chrome.alarms.create("fetchAlarm", {
delayInMinutes: 1,
periodInMinutes: 1
});
chrome.alarms.onAlarm.addListener(function(alarm) {
console.log("Got an alarm!", alarm);
});
});
我猜你是在引用 Chrome Apps 文档,这就是它变得混乱的原因。
意思是 event pages (a type of background page) 将被唤醒以服务于警报事件,即使它们因空闲而被卸载。
这仅适用于event/background页。 Chrome不会因为页面过去监听的某个事件发生就随机打开一个页面。因此,您不应将实际的事件侦听器逻辑放入 UI 页面(选项、弹出窗口等)
在您的情况下,刷新页面会使包含侦听器的 JS 上下文与其一起被销毁,并且您的逻辑仅在单击后添加侦听器。即使您将 addListener
添加到顶层代码,它也只会在页面打开时起作用。
因此,您将需要添加一个后台页面来为该事件(实际的侦听器)提供服务。
后台页面通常随时准备好回答事件。事件页面的特殊之处在于 Chrome 记住哪些事件应该触发它们的加载并且不会保持它们加载。您可以阅读更多相关信息