Описание
Используйте API chrome.alarms
, чтобы запланировать периодический запуск кода или в определенное время в будущем.
Разрешения
alarms
Манифест
Чтобы использовать API chrome.alarms
, объявите разрешение "alarms"
в манифесте :
{
"name": "My extension",
...
"permissions": [
"alarms"
],
...
}
Примеры
Следующие примеры показывают, как использовать сигнал тревоги и реагировать на него. Чтобы попробовать этот API, установите пример Alarm API из репозитория chrome-extension-samples .
Установить будильник
В следующем примере устанавливается сигнал тревоги в сервисном работнике при установке расширения:
сервис-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
});
});
Реагировать на сигнал тревоги
В следующем примере значок панели инструментов действий задается на основе имени сработавшего сигнала тревоги.
сервис-worker.js:
chrome.alarms.onAlarm.addListener((alarm) => {
chrome.action.setIcon({
path: getIconPath(alarm.name),
});
});
Типы
Alarm
Характеристики
- имя
нить
Название этого сигнала тревоги.
- периодInMinutes
номер необязательно
Если значение не равно нулю, сигнал тревоги является повторяющимся и сработает снова через
periodInMinutes
минут. - запланированноевремя
число
Время, в которое должен был сработать этот сигнал тревоги, в миллисекундах после эпохи (например
Date.now() + n
). По соображениям производительности сигнал тревоги мог быть задержан на произвольное время сверх этого значения.
AlarmCreateInfo
Характеристики
- задержкавминутах
номер необязательно
Промежуток времени в минутах, по истечении которого должно сработать событие
onAlarm
. - периодInMinutes
номер необязательно
Если установлено, событие onAlarm должно срабатывать каждые
periodInMinutes
минут после начального события, указанного вwhen
илиdelayInMinutes
. Если не установлено, сигнализация сработает только один раз. - когда
номер необязательно
Время, в которое должен сработать сигнал тревоги, в миллисекундах после эпохи (например,
Date.now() + n
).
Методы
clear()
chrome.alarms.clear(
name?: string,
callback?: function,
)
Удаляет сигнал тревоги с заданным именем.
Параметры
- имя
строка необязательна
Имя сигнала тревоги, который необходимо удалить. По умолчанию используется пустая строка.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(wasCleared: boolean) => void
- былоочищено
логическое значение
Возврат
Обещание <логическое значение>
Хром 91+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
clearAll()
chrome.alarms.clearAll(
callback?: function,
)
Сбрасывает все сигналы тревоги.
Параметры
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(wasCleared: boolean) => void
- былоочищено
логическое значение
Возврат
Обещание <логическое значение>
Хром 91+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
create()
chrome.alarms.create(
name?: string,
alarmInfo: AlarmCreateInfo,
callback?: function,
)
Создает сигнализацию. Около времени, указанного в alarmInfo
, запускается событие onAlarm
. Если существует другой сигнал тревоги с таким же именем (или без имени, если оно не указано), он будет отменен и заменен этим сигналом тревоги.
Чтобы снизить нагрузку на компьютер пользователя, Chrome ограничивает срабатывание сигналов тревоги не чаще одного раза в 30 секунд, но может задерживать их на произвольное время. То есть установка delayInMinutes
или periodInMinutes
значения меньше 0.5
не будет учитываться и вызовет предупреждение. when
можно установить значение менее 30 секунд после «сейчас» без предупреждения, но на самом деле сигнал тревоги не сработает в течение как минимум 30 секунд.
Чтобы помочь вам отладить ваше приложение или расширение, когда вы загрузили его в распакованном виде, частота срабатывания сигнала тревоги не ограничена.
Параметры
- имя
строка необязательна
Необязательное имя для идентификации этого сигнала тревоги. По умолчанию используется пустая строка.
- сигнализацияИнформация
Описывает, когда должна сработать сигнализация. Начальное время должно быть указано либо с помощью
when
, либо сdelayInMinutes
(но не обоих). ЕслиperiodInMinutes
установлен, сигнал тревоги будет повторяться каждыеperiodInMinutes
минут после первоначального события. Если для повторяющегося сигнала тревоги не задано ниwhen
, ниdelayInMinutes
,periodInMinutes
используется по умолчанию дляdelayInMinutes
. - перезвонить
функция необязательна
Хром 111+Параметр
callback
выглядит так:() => void
Возврат
Обещание<void>
Хром 111+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
get()
chrome.alarms.get(
name?: string,
callback?: function,
)
Получает сведения об указанном сигнале тревоги.
Параметры
- имя
строка необязательна
Имя сигнала тревоги, который требуется получить. По умолчанию используется пустая строка.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(alarm?: Alarm) => void
- тревога
Сигнализация опционально
Возврат
Обещание< Тревога | не определено>
Хром 91+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
getAll()
chrome.alarms.getAll(
callback?: function,
)
Получает массив всех сигналов тревоги.
Параметры
Возврат
Обещание< Тревога []>
Хром 91+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.