Beschreibung
Mit der chrome.alarms
API können Sie Code so planen, dass er regelmäßig oder zu einem bestimmten Zeitpunkt in der Zukunft ausgeführt wird.
Berechtigungen
alarms
Manifest
Deklarieren Sie zur Verwendung der chrome.alarms
API die Berechtigung "alarms"
im Manifest:
{
"name": "My extension",
...
"permissions": [
"alarms"
],
...
}
Beispiele
Die folgenden Beispiele zeigen, wie du einen Alarm verwendest und darauf reagierst. Um diese API auszuprobieren, Installieren Sie das Alarm API-Beispiel unter chrome-extension-samples zu erstellen.
Wecker stellen
Mit dem folgenden Beispiel wird bei der Installation der Erweiterung ein Alarm im Service Worker ausgelöst:
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
});
});
Auf Alarm reagieren
Im folgenden Beispiel wird das Symbol in der Aktionssymbolleiste auf den Namen des ausgelösten Alarms ausgerichtet.
service-worker.js:
chrome.alarms.onAlarm.addListener((alarm) => {
chrome.action.setIcon({
path: getIconPath(alarm.name),
});
});
Typen
Alarm
Attribute
-
Name
String
Name dieses Alarms.
-
periodInMinutes
Zahl optional
Wenn nicht null, ist der Wecker ein sich wiederholender Wecker und wird in
periodInMinutes
Minuten wieder ausgelöst. -
scheduledTime
Zahl
Zeitpunkt, zu dem dieser Alarm ausgelöst werden sollte, in Millisekunden nach der Epoche (z.B.
Date.now() + n
). Aus Leistungsgründen kann der Alarm noch um etwas länger verzögert worden sein.
AlarmCreateInfo
Attribute
-
delayInMinutes
Zahl optional
Zeitraum in Minuten, nach dem das Ereignis
onAlarm
ausgelöst werden sollte. -
periodInMinutes
Zahl optional
Wenn festgelegt, sollte das onAlarm-Ereignis alle
periodInMinutes
Minuten nach dem ersten durchwhen
oderdelayInMinutes
angegebenen Ereignis ausgelöst werden. Wird sie nicht konfiguriert, wird der Alarm nur einmal ausgelöst. -
wann
Zahl optional
Zeitpunkt, zu dem der Alarm ausgelöst werden soll, in Millisekunden nach der Epoche (z.B.
Date.now() + n
).
Methoden
clear()
chrome.alarms.clear(
name?: string,
callback?: function,
)
Löscht den Alarm mit dem angegebenen Namen.
Parameter
-
Name
String optional
Der Name des zu löschenden Alarms. Die Standardeinstellung ist ein leerer String.
-
callback
Funktion optional
Der Parameter
callback
sieht so aus: <ph type="x-smartling-placeholder"></ph>(wasCleared: boolean) => void
-
wasCleared
boolean
-
Gibt Folgendes zurück:
-
Promise<boolean>
Chrome 91 und höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
clearAll()
chrome.alarms.clearAll(
callback?: function,
)
Löscht alle Wecker.
Parameter
-
callback
Funktion optional
Der Parameter
callback
sieht so aus: <ph type="x-smartling-placeholder"></ph>(wasCleared: boolean) => void
-
wasCleared
boolean
-
Gibt Folgendes zurück:
-
Promise<boolean>
Chrome 91 und höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
create()
chrome.alarms.create(
name?: string,
alarmInfo: AlarmCreateInfo,
callback?: function,
)
Wecker stellen Kurz nach der in alarmInfo
angegebenen Zeit wird das Ereignis onAlarm
ausgelöst. Gibt es einen anderen Alarm mit dem gleichen Namen (oder keinen Namen, wenn keiner angegeben ist), wird er abgebrochen und durch diesen Wecker ersetzt.
Um die Geräte des Nutzers zu entlasten, beschränkt Chrome Alarme auf höchstens einmal alle 30 Sekunden, kann aber auch um einiges länger verzögern. Wenn Sie also delayInMinutes
oder periodInMinutes
auf weniger als 0.5
festlegen, wird dies nicht berücksichtigt und es wird eine Warnung ausgelöst. when
kann auf weniger als 30 Sekunden nach „jetzt“ festgelegt werden ohne Vorwarnung. Der Alarm löst jedoch erst nach 30 Sekunden einen Alarm aus.
Um Sie bei der Fehlerbehebung Ihrer App oder Erweiterung zu unterstützen, gibt es keine Begrenzung dafür, wie oft der Alarm ausgelöst werden kann, nachdem Sie sie entpackt geladen haben.
Parameter
-
Name
String optional
Optionaler Name zur Identifizierung dieses Alarms. Die Standardeinstellung ist ein leerer String.
-
alarmInfo
Beschreibt, wann der Alarm ausgelöst werden soll. Die Anfangszeit muss entweder durch
when
oder durchdelayInMinutes
angegeben werden, aber nicht durch beide. WennperiodInMinutes
eingestellt ist, wird der Wecker alleperiodInMinutes
Minuten nach dem ersten Ereignis wiederholt. Wenn wederwhen
nochdelayInMinutes
für einen sich wiederholenden Wecker eingestellt ist, wirdperiodInMinutes
als Standardeinstellung fürdelayInMinutes
verwendet. -
callback
Funktion optional
Chrome 111 und höherDer Parameter
callback
sieht so aus: <ph type="x-smartling-placeholder"></ph>() => void
Gibt Folgendes zurück:
-
Versprechen<void>
Chrome 111 und höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
get()
chrome.alarms.get(
name?: string,
callback?: function,
)
Ruft Details zum angegebenen Alarm ab.
Parameter
Gibt Folgendes zurück:
-
Promise<Alarm | nicht definiert>
Chrome 91 und höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
getAll()
chrome.alarms.getAll(
callback?: function,
)
Ruft ein Array aller Alarme ab.
Parameter
Gibt Folgendes zurück:
-
Versprechen<Alarm[]>
Chrome 91 und höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.