alarms.create()
创建一个新的 alarm.
使用语法
js
browser.alarms.create(
name, // 可选的字符串 (string) 类型
alarmInfo, // 可选的对象 (object) 类型
);
参数介绍
name
可选-
字符串类型。alarm 的名称。默认为空的字符串。alarm 的名称可以在
alarms.get()
(en-US)方法和alarms.clear()
(en-US)方法中引用。同时它也可以通过alarms.onAlarm
(en-US)监听方法传入的参数对象alarms.Alarm
(en-US)的 name 属性访问到。Alarm 的名称是唯一的 (在单个附件范围内). 如果传入了已经在这个附件存在的名称,原来的同名 alarm 会被移除并且没有警告。 alarmInfo
可选-
object
(对象)类型。你可以对过它来指定什么时间 alarm 会开始触发,其值可以是一个具体的时间值或者是一个延时(从 alarm 设置开始)。为了让 alarm 能复现,需要指定periodInMinutes
。在 Chrome 浏览器上,除非附件以非打包 (unpackaged) 方式加载,alarm 的创建每分钟不允许超过一次。如果附件尝试设置
delayInMinutes
为小于 1 的值,alarm 只能在到达 1 分钟之后才会触发,并且会变成每分钟触发一次。alarmInfo
对象可以设置以下属性:when
可选-
double
类型。alarm 第一次触发的时间,值为自 1970-01-01 00:00:00 UTC 过去的毫秒数。请使用Date.now()
来获取1970-01-01 00:00:00 UTC
到当前时间过去的毫秒数。如果你设置了 when 属性,请不要设置 delayInMinutes 属性。 delayInMinutes
可选-
double
类型。alarm 设置好到第一次触发之间的分钟数。如果你设置了delayInMinutes
属性,请不要设置 when 属性。 periodInMinutes
可选-
double
类型。如果设置此属性,alarm 会从第一次触发开始每隔periodInMinutes
分钟再次触发。如果你没有设置 when 及 delayInMinutes 属性,alarm 会在 alarm 设置好之后 periodInMinutes 分钟第一次触发。如果 periodInMinutes 属性没有设置,则 alarm 只会触发一次。
浏览器兼容性
BCD tables only load in the browser
示例
Create a one-time delay-based alarm with "" for the name:
js
const delayInMinutes = 5;
browser.alarms.create({
delayInMinutes,
});
Create a periodic delay-based alarm named "my-periodic-alarm":
js
const delayInMinutes = 5;
const periodInMinutes = 2;
browser.alarms.create("my-periodic-alarm", {
delayInMinutes,
periodInMinutes,
});
Create a periodic absolute alarm named "my-periodic-alarm":
js
const when = 1545696000;
const periodInMinutes = 2;
browser.alarms.create("my-periodic-alarm", {
when,
periodInMinutes,
});
备注: This API is based on Chromium's chrome.alarms
API.
Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.