chrome.alarms

refresh date: 2026-09-25 robots: noindex

Описание

Используйте chrome.alarms API, чтобы запланировать периодическое выполнение кода или его запуск в определенное время.

Разрешения

alarms

Манифест

Чтобы использовать chrome.alarms API, объявите разрешение "alarms" в манифесте:

{
  "name": "My extension",
  ...
  "permissions": [
    "alarms"
  ],
  ...
}

Примеры

В примерах ниже показано, как использовать будильник и реагировать на него. Чтобы попробовать этот API, установите пример Alarm API из хранилища chrome-extension-samples.

Установить будильник

В следующем примере при установке расширения в сервис-воркере устанавливается будильник:

service-worker.js:

chrome.runtime.onInstalled.addListener(async ({ reason }) => {
  if (reason !== 'install') {
    return;
  }

  // Create an alarm so we have something to look at in the demo
  await chrome.alarms.create('demo-default-alarm', {
    delayInMinutes: 1,
    periodInMinutes: 1
  });
});

Как ответить на сигнал будильника

В примере ниже значок панели инструментов устанавливается на основе названия сработавшего будильника.

service-worker.js:

chrome.alarms.onAlarm.addListener((alarm) => {
  chrome.action.setIcon({
    path: getIconPath(alarm.name),
  });
});

Типы

Alarm

Свойства

  • name

    string

    Название этого будильника.

  • periodInMinutes

    number (необязательно)

    Если значение не равно null, будильник повторяется и сработает снова через periodInMinutes мин.

  • persistAcrossSessions

    Логическое значение

    Chrome 150+

    Указывает, должно ли оповещение сохраняться между сеансами (перезапусками браузера).

  • scheduledTime

    число

    Время, на которое было запланировано срабатывание оповещения, в миллисекундах с начала эпохи (например, Date.now() + n). По причинам, связанным с производительностью, оповещение может быть отложено на произвольное время.

AlarmCreateInfo

Свойства

  • delayInMinutes

    number (необязательно)

    Время в минутах, по истечении которого должно активироваться событие onAlarm.

  • name

    Строка (необязательно)

    Chrome 152 и более поздних версий

    Название этого будильника.

  • periodInMinutes

    number (необязательно)

    Если задано, событие onAlarm должно срабатывать каждые periodInMinutes мин. после исходного события, указанного в when или delayInMinutes. Если не задать дни, будильник сработает только один раз.

  • persistAcrossSessions

    Логическое значение (необязательно)

    Chrome 150+

    Должно ли оповещение сохраняться между сеансами (перезапусками браузера). В Chrome по умолчанию используется значение true, но мы рекомендуем задавать его явным образом, чтобы обеспечить совместимость с другими браузерами.

  • когда

    number (необязательно)

    Время, когда должен сработать будильник, в миллисекундах с начала отсчета (например, Date.now() + n).

Методы

clear()

Promise
chrome.alarms.clear(
  name?: string,
  callback?: function,
)
: Promise<boolean>

Удаляет будильник с указанным названием.

Параметры

  • name

    Строка (необязательно)

    Название будильника, который нужно отключить. Значение по умолчанию – пустая строка.

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    (wasCleared: boolean) => void

    • wasCleared

      Логическое значение

Возвраты

  • Promise<boolean>

    Chrome 91 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

clearAll()

Promise
chrome.alarms.clearAll(
  callback?: function,
)
: Promise<boolean | undefined>

Удалить все будильники.

Параметры

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    (wasCleared?: boolean) => void

    • wasCleared

      Логическое значение (необязательно)

Возвраты

  • Promise<boolean | undefined>

    Chrome 91 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

create()

Promise
chrome.alarms.create(
  name?: string,
  alarmInfo: AlarmCreateInfo,
  callback?: function,
)
: Promise<void>

Создает будильник. Событие onAlarm активируется в указанное время (alarmInfo). Если у вас уже есть будильник с таким же названием (или без названия, если оно не указано), он будет отменен и заменен новым.

Чтобы снизить нагрузку на компьютер пользователя, Chrome ограничивает частоту срабатывания будильников до одного раза в секунду, но может задерживать их на произвольное время. Если вы зададите для параметра delayInMinutes или periodInMinutes значение меньше одной секунды, оно не будет учитываться и вы увидите предупреждение. when можно установить менее чем за 1 секунду до текущего времени без предупреждения, но будильник сработает не ранее чем через 1 секунду.

Параметры

  • name

    Строка (необязательно)

    Необязательное название для идентификации этого будильника. Значение по умолчанию – пустая строка.

  • alarmInfo

    Описывает, когда должен сработать будильник. Начальное время должно быть указано с помощью when или delayInMinutes (но не обоих). Если задано значение periodInMinutes, будильник будет повторяться каждые periodInMinutes минут после первого срабатывания. Если для повторяющегося будильника не задано ни when, ни delayInMinutes, то для delayInMinutes по умолчанию используется periodInMinutes.

  • обратный вызов

    function необязательно

    Chrome 111 и более поздних версий

    Параметр callback выглядит следующим образом:

    () => void

Возвраты

  • Promise<void>

    Chrome 111 и более поздних версий

    Promise, который разрешается после создания будильника.

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

get()

Promise
chrome.alarms.get(
  name?: string,
  callback?: function,
)
: Promise<Alarm | undefined>

Получает сведения об указанном будильнике.

Параметры

  • name

    Строка (необязательно)

    Название будильника, который нужно получить. Значение по умолчанию – пустая строка.

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    (alarm?: Alarm) => void

Возвраты

  • Promise<Alarm | undefined>

    Chrome 91 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

getAll()

Promise
chrome.alarms.getAll(
  callback?: function,
)
: Promise<Alarm[]>

Возвращает массив всех будильников.

Параметры

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    (alarms: Alarm[]) => void

Возвраты

  • Promise<Alarm[]>

    Chrome 91 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

События

onAlarm

chrome.alarms.onAlarm.addListener(
  callback: function,
)

Срабатывает, когда истекает время будильника. Полезно для страниц событий.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (alarm: Alarm) => void