alarms.create()

建立一個新的瀏覽器會話鬧鐘。一個鬧鐘可以觸發一次或多次。鬧鐘在最後一次觸發後會被清除。

注意: 從 Chrome 117 開始,活動鬧鐘的數量限制為 500。達到此限制時,鬧鐘建立將失敗。

語法

js
browser.alarms.create(
  name,              // optional string
  alarmInfo          // optional object
)

引數

name 可選

string。鬧鐘的名稱。預設為空字串。

這可用於在 alarms.get()alarms.clear() 中引用特定鬧鐘。它也將作為傳遞給監聽器函式的 alarms.Alarm 物件的 name 屬性在 alarms.onAlarm 中可用。

鬧鐘名稱在單個擴充套件的作用域內是唯一的。如果存在同名鬧鐘,則現有鬧鐘將被清除,正在建立的鬧鐘將取代它。

alarmInfo 可選

object。您可以使用它來指定鬧鐘的初始觸發時間,可以是絕對值 (when) 或距離設定鬧鐘的時間的延遲 (delayInMinutes)。要使鬧鐘重複,請指定 periodInMinutes

在 Chrome 中,除非擴充套件是解包載入的,否則鬧鐘不會每 30 秒觸發一次以上。如果擴充套件設定 delayInMinutes 的值為 < 0.5,或 when 的值為 < 0.5,則鬧鐘在設定後 30 秒觸發。如果擴充套件設定 periodInMinutes 的值為 < 0.5,則鬧鐘每 30 秒觸發一次。將 delayInMinutesperiodInMinutes 設定為 < 0.5 會導致警告。鬧鐘觸發可能會被任意延遲。在 Chrome 120 之前,此限制為一分鐘。

alarmInfo 物件可能包含以下屬性

when 可選

double。鬧鐘的第一次觸發時間,以 自紀元以來的毫秒數給出。要獲取紀元和當前時間之間的毫秒數,請使用 Date.now()。如果指定了 when,請勿指定 delayInMinutes

delayInMinutes 可選

double。鬧鐘的第一次觸發時間,以距離設定鬧鐘的時間的分鐘數給出。如果指定了 delayInMinutes,請勿指定 when

periodInMinutes 可選

double。如果指定了此值,則鬧鐘將在初始觸發後每 periodInMinutes 再次觸發。如果您指定此值,則可以省略 whendelayInMinutes,然後鬧鐘將在 periodInMinutes 後初始觸發。如果未指定 periodInMinutes,則鬧鐘僅觸發一次。

返回值

一個 Promise,它以無引數的方式完成。

示例

建立一個一次性的基於延遲的鬧鐘,名稱為空字串 ""

js
function onAdded() {
  console.log("Alarm Added!");
}

let delayInMinutes = 5;

let addingAlarm = browser.alarms.create({
  delayInMinutes,
});
addingAlarm.then(onAdded);

建立一個名為“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,
});

瀏覽器相容性

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