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()
chrome.alarms.clear(
name?: string,
callback?: function,
): Promise<boolean>
Удаляет будильник с указанным названием.
Параметры
-
name
Строка (необязательно)
Название будильника, который нужно отключить. Значение по умолчанию – пустая строка.
-
обратный вызов
function необязательно
Параметр
callbackвыглядит следующим образом:(wasCleared: boolean) => void
-
wasCleared
Логическое значение
-
Возвраты
-
Promise<boolean>
Chrome 91 и более поздних версийОбъекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.
clearAll()
chrome.alarms.clearAll(
callback?: function,
): Promise<boolean | undefined>
Удалить все будильники.
Параметры
-
обратный вызов
function необязательно
Параметр
callbackвыглядит следующим образом:(wasCleared?: boolean) => void
-
wasCleared
Логическое значение (необязательно)
-
Возвраты
-
Promise<boolean | undefined>
Chrome 91 и более поздних версийОбъекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.
create()
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()
chrome.alarms.get(
name?: string,
callback?: function,
): Promise<Alarm | undefined>
Получает сведения об указанном будильнике.
Параметры
Возвраты
-
Promise<Alarm | undefined>
Chrome 91 и более поздних версийОбъекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.
getAll()
chrome.alarms.getAll(
callback?: function,
): Promise<Alarm[]>
Возвращает массив всех будильников.
Параметры
-
обратный вызов
function необязательно
Параметр
callbackвыглядит следующим образом:(alarms: Alarm[]) => void
-
Будильники
-
Возвраты
-
Promise<Alarm[]>
Chrome 91 и более поздних версийОбъекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.