refresh date: 2026-09-25 robots: noindex
Opis
Użyj interfejsu chrome.alarms API, aby zaplanować okresowe uruchamianie kodu lub uruchomienie go w określonym czasie w przyszłości.
Uprawnienia
alarmsPlik manifestu
Aby używać interfejsu API chrome.alarms, zadeklaruj uprawnienie "alarms" w pliku manifestu:
{
"name": "My extension",
...
"permissions": [
"alarms"
],
...
}
Przykłady
Poniższe przykłady pokazują, jak używać alarmu i jak na niego reagować. Aby wypróbować ten interfejs API, zainstaluj przykład interfejsu Alarm API z repozytorium chrome-extension-samples.
Ustaw alarm
W tym przykładzie alarm jest ustawiany w skrypcie service worker po zainstalowaniu rozszerzenia:
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
});
});
Reagowanie na alarm
W tym przykładzie ikona paska narzędzi działania jest ustawiana na podstawie nazwy alarmu, który się włączył.
service-worker.js:
chrome.alarms.onAlarm.addListener((alarm) => {
chrome.action.setIcon({
path: getIconPath(alarm.name),
});
});
Typy
Alarm
Właściwości
-
nazwa
tekst
Nazwa tego alarmu.
-
periodInMinutes
number optional
Jeśli nie jest pusta, alarm jest powtarzany i włączy się ponownie za
periodInMinutesmin. -
persistAcrossSessions
wartość logiczna
Chrome 150+Określa, czy alarm powinien być zachowywany między sesjami (ponownymi uruchomieniami przeglądarki).
-
scheduledTime
liczba
Czas, na który zaplanowano uruchomienie tego alarmu, w milisekundach od początku epoki (np.
Date.now() + n). Ze względu na wydajność alarm mógł zostać opóźniony o dowolną wartość.
AlarmCreateInfo
Właściwości
-
delayInMinutes
number optional
Czas w minutach, po którym powinno zostać wywołane zdarzenie
onAlarm. -
nazwa
ciąg znaków opcjonalny
Chrome 152 lub nowsza wersjaNazwa tego alarmu.
-
periodInMinutes
number optional
Jeśli ta opcja jest ustawiona, zdarzenie onAlarm powinno być wywoływane co
periodInMinutesmin po początkowym zdarzeniu określonym przezwhenlubdelayInMinutes. Jeśli nie zostanie ustawiony, alarm włączy się tylko raz. -
persistAcrossSessions
boolean opcjonalne
Chrome 150+Określa, czy alarm powinien być zachowywany między sesjami (ponownymi uruchomieniami przeglądarki). W Chrome domyślnie jest ustawiona wartość „true”, aby zachować zgodność z dotychczasowym działaniem, ale należy ustawić tę wartość jawnie, aby zmaksymalizować zgodność między przeglądarkami.
-
kiedy
number optional
Czas, w którym alarm powinien się uruchomić, podany w milisekundach od początku epoki (np.
Date.now() + n).
Metody
clear()
chrome.alarms.clear(
name?: string,
callback?: function,
): Promise<boolean>
Usuwa alarm o podanej nazwie.
Parametry
-
nazwa
ciąg znaków opcjonalny
Nazwa alarmu, który chcesz wyłączyć. Domyślnie jest to pusty ciąg znaków.
-
callback
function opcjonalne
Parametr
callbackwygląda tak:(wasCleared: boolean) => void
-
wasCleared
wartość logiczna
-
Zwroty
-
Promise<boolean>
Chrome 91 lub nowsza wersjaObiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy używać wywołań zwrotnych.
clearAll()
chrome.alarms.clearAll(
callback?: function,
): Promise<boolean | undefined>
Usuwa wszystkie alarmy.
Parametry
-
callback
function opcjonalne
Parametr
callbackwygląda tak:(wasCleared?: boolean) => void
-
wasCleared
boolean opcjonalne
-
Zwroty
-
Promise<boolean | undefined>
Chrome 91 lub nowsza wersjaObiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy używać wywołań zwrotnych.
create()
chrome.alarms.create(
name?: string,
alarmInfo: AlarmCreateInfo,
callback?: function,
): Promise<void>
Tworzy alarm. W pobliżu czasu określonego przez alarmInfo wywoływane jest zdarzenie onAlarm. Jeśli istnieje inny alarm o tej samej nazwie (lub bez nazwy, jeśli nie została podana), zostanie on anulowany i zastąpiony tym alarmem.
Aby zmniejszyć obciążenie komputera użytkownika, Chrome ogranicza alarmy do maksymalnie 1 na sekundę, ale może je opóźnić o dowolną wartość. Oznacza to, że ustawienie wartości delayInMinutes lub periodInMinutes na mniej niż 1 sekundę nie zostanie uwzględnione i spowoduje wyświetlenie ostrzeżenia. Wartość when można ustawić na mniej niż 1 sekundę po „teraz” bez ostrzeżenia, ale alarm nie zostanie uruchomiony przez co najmniej 1 sekundę.
Parametry
-
nazwa
ciąg znaków opcjonalny
Opcjonalna nazwa identyfikująca ten alarm. Domyślnie jest to pusty ciąg znaków.
-
alarmInfo
Określa, kiedy alarm powinien się uruchomić. Czas początkowy musi być określony przez
whenlubdelayInMinutes(ale nie przez oba te parametry). Jeśli ustawionoperiodInMinutes, alarm będzie powtarzany coperiodInMinutesmin po pierwszym zdarzeniu. Jeśli w przypadku alarmu powtarzanego nie ustawiono aniwhen, anidelayInMinutes, jako domyślna wartośćdelayInMinuteszostanie użytaperiodInMinutes. -
callback
function opcjonalne
Chrome 111 lub nowsza wersjaParametr
callbackwygląda tak:() => void
Zwroty
-
thought Promise<void>
Chrome 111 lub nowsza wersjaObietnica, która zostanie spełniona po utworzeniu alarmu.
Obiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy używać wywołań zwrotnych.
get()
chrome.alarms.get(
name?: string,
callback?: function,
): Promise<Alarm | undefined>
Pobiera szczegółowe informacje o określonym alarmie.
Parametry
Zwroty
-
Promise<Alarm | undefined>
Chrome 91 lub nowsza wersjaObiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy używać wywołań zwrotnych.
getAll()
chrome.alarms.getAll(
callback?: function,
): Promise<Alarm[]>
Pobiera tablicę wszystkich alarmów.
Parametry
Zwroty
-
Promise<Alarm[]>
Chrome 91 lub nowsza wersjaObiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy używać wywołań zwrotnych.