alarms.create()

为当前浏览器会话创建一个新的警报。警报可以触发一次或多次。警报在最后一次触发后会被清除。

语法

js
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分钟再次触发。如果您指定此值,则可以省略whendelayInMinutes,然后警报将在periodInMinutes后首次触发。如果未指定periodInMinutes,则警报只会触发一次。

示例

创建一个使用空字符串作为名称的一次性延迟警报

js
const delayInMinutes = 5;

browser.alarms.create({
  delayInMinutes,
});

创建一个名为“my-periodic-alarm”的周期性延迟警报

js
const delayInMinutes = 5;
const periodInMinutes = 2;

browser.alarms.create("my-periodic-alarm", {
  delayInMinutes,
  periodInMinutes,
});

创建一个名为“my-periodic-alarm”的周期性绝对警报

js
const when = 1545696000;
const periodInMinutes = 2;

browser.alarms.create("my-periodic-alarm", {
  when,
  periodInMinutes,
});

浏览器兼容性

BCD 表格仅在启用了 JavaScript 的浏览器中加载。

注意:此 API 基于 Chromium 的chrome.alarms API。