alarms.create()
为当前浏览器会话创建一个新的警报。警报可以触发一次或多次。警报在最后一次触发后会被清除。
语法
browser.alarms.create(
name, // optional string
alarmInfo // optional object
)
参数
name
可选-
string
。警报的名称。默认为空字符串。这可以用于在
alarms.get()
和alarms.clear()
中引用特定的警报。它也将在alarms.onAlarm
中作为传递给监听器函数的alarms.Alarm
对象的name
属性提供。警报名称在一个扩展的范围内是唯一的。如果存在具有相同名称的警报,则现有警报将被清除,并且正在创建的警报将替换它。
alarmInfo
可选-
object
。您可以使用它来指定警报何时首次触发,可以是绝对值 (when
),也可以是从设置警报的时间开始的延迟 (delayInMinutes
)。要使警报重复,请指定periodInMinutes
。在 Chrome 中,除非扩展未打包加载,否则它创建的警报不允许每分钟触发超过一次。如果扩展尝试将
delayInMinutes
设置为小于 1 的值,或将when
设置为小于 1 分钟后的值,则警报将在 1 分钟后触发。如果扩展尝试将periodInMinutes
设置为小于 1 的值,则警报将每分钟触发一次。alarmInfo
对象可能包含以下属性when
可选-
double
。警报首次触发的时刻,以自纪元以来的毫秒数表示。要获取纪元和当前时间之间的毫秒数,请使用Date.now()
。如果您指定了when
,则不要指定delayInMinutes
。 delayInMinutes
可选-
double
。警报首次触发的时刻,以设置警报后的分钟数表示。如果您指定了delayInMinutes
,则不要指定when
。 periodInMinutes
可选-
double
。如果指定了此值,则警报将在其初始触发后的每periodInMinutes
分钟再次触发。如果您指定此值,则可以省略when
和delayInMinutes
,然后警报将在periodInMinutes
后首次触发。如果未指定periodInMinutes
,则警报只会触发一次。
示例
创建一个使用空字符串作为名称的一次性延迟警报
const delayInMinutes = 5;
browser.alarms.create({
delayInMinutes,
});
创建一个名为“my-periodic-alarm”的周期性延迟警报
const delayInMinutes = 5;
const periodInMinutes = 2;
browser.alarms.create("my-periodic-alarm", {
delayInMinutes,
periodInMinutes,
});
创建一个名为“my-periodic-alarm”的周期性绝对警报
const when = 1545696000;
const periodInMinutes = 2;
browser.alarms.create("my-periodic-alarm", {
when,
periodInMinutes,
});
浏览器兼容性
BCD 表格仅在启用了 JavaScript 的浏览器中加载。
注意:此 API 基于 Chromium 的chrome.alarms
API。