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
alarmsManifest
Wenn Sie die chrome.alarms API verwenden möchten, deklarieren Sie die Berechtigung "alarms" im Manifest:
{
  "name": "My extension",
  ...
  "permissions": [
    "alarms"
  ],
  ...
}
Beispiele
Die folgenden Beispiele zeigen, wie Sie einen Alarm verwenden und darauf reagieren. Wenn Sie diese API ausprobieren möchten, installieren Sie das Alarm API-Beispiel aus dem Repository chrome-extension-samples.
Wecker stellen
Im folgenden Beispiel wird beim Installieren der Erweiterung ein Alarm im Service Worker festgelegt:
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 einen Alarm reagieren
Im folgenden Beispiel wird das Symbol für die Aktionsleiste basierend auf dem Namen des ausgelösten Alarms festgelegt.
service-worker.js:
chrome.alarms.onAlarm.addListener((alarm) => {
  chrome.action.setIcon({
    path: getIconPath(alarm.name),
  });
});
Typen
Alarm
Attribute
- 
    nameString Name dieses Alarms. 
- 
    periodInMinutesnumber optional Wenn nicht null, ist der Wecker ein sich wiederholender Wecker und wird in periodInMinutesMinuten wieder ausgelöst.
- 
    scheduledTimeZahl Zeitpunkt, zu dem dieser Alarm ausgelöst werden sollte, in Millisekunden seit dem Epochenbeginn (z.B. Date.now() + n). Aus Leistungsgründen kann der Alarm um einen beliebigen Betrag darüber hinaus verzögert worden sein.
AlarmCreateInfo
Attribute
- 
    delayInMinutesnumber optional Zeit in Minuten, nach der das onAlarm-Ereignis ausgelöst werden soll.
- 
    periodInMinutesnumber optional Wenn festgelegt, sollte das onAlarm-Ereignis alle periodInMinutesMinuten nach dem ursprünglichen Ereignis ausgelöst werden, das durchwhenoderdelayInMinutesangegeben wird. Wenn diese Option nicht festgelegt ist, wird der Alarm nur einmal ausgelöst.
- 
    wannnumber optional Die Zeit, zu der der Alarm ausgelöst werden soll, in Millisekunden seit der Epoche (z.B. Date.now() + n).
Methoden
clear()
chrome.alarms.clear(
name?: string,
callback?: function,
): Promise<boolean>
Löscht den Wecker mit dem angegebenen Namen.
Parameter
- 
    nameString optional Der Name des zu löschenden Alarms. Die Standardeinstellung ist der leere String. 
- 
    callbackFunktion optional Der Parameter callbacksieht so aus:(wasCleared: boolean) => void - 
    wasClearedboolean 
 
- 
    
Ausgabe
- 
            Promise<boolean> Chrome 91 und höherPromises 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,
): Promise<boolean>
Löscht alle Wecker.
Parameter
- 
    callbackFunktion optional Der Parameter callbacksieht so aus:(wasCleared: boolean) => void - 
    wasClearedboolean 
 
- 
    
Ausgabe
- 
            Promise<boolean> Chrome 91 und höherPromises 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,
): Promise<void>
Erstellt einen Wecker. Kurz vor den von alarmInfo angegebenen Zeiten wird das onAlarm-Ereignis ausgelöst. Wenn ein anderer Wecker mit demselben Namen (oder ohne Namen, wenn keiner angegeben ist) vorhanden ist, wird er abgebrochen und durch diesen Wecker ersetzt.
Um die Belastung des Nutzergeräts zu verringern, werden Alarme in Chrome höchstens einmal alle 30 Sekunden ausgelöst. Sie können aber auch beliebig lange verzögert werden. Wenn Sie delayInMinutes oder periodInMinutes auf einen Wert unter 0.5 festlegen, wird dies nicht berücksichtigt und es wird eine Warnung angezeigt. when kann ohne Warnung auf weniger als 30 Sekunden nach „jetzt“ eingestellt werden. Der Alarm wird jedoch erst nach mindestens 30 Sekunden ausgelöst.
Wenn Sie Ihre App oder Erweiterung entpackt geladen haben, gibt es keine Begrenzung für die Häufigkeit, mit der der Alarm ausgelöst werden kann. Das kann Ihnen beim Debuggen helfen.
Parameter
- 
    nameString optional Optionaler Name zur Identifizierung dieses Alarms. Die Standardeinstellung ist der leere String. 
- 
    alarmInfoBeschreibt, wann der Wecker klingeln soll. Die Startzeit muss entweder mit whenoderdelayInMinutesangegeben werden (aber nicht mit beiden). WennperiodInMinutesfestgelegt ist, wird der Alarm alleperiodInMinutesMinuten nach dem ursprünglichen Ereignis wiederholt. Wenn wederwhennochdelayInMinutesfür einen sich wiederholenden Wecker festgelegt ist, wirdperiodInMinutesals Standard fürdelayInMinutesverwendet.
- 
    callbackFunktion optional Chrome 111 und höherDer Parameter callbacksieht so aus:() => void 
Ausgabe
- 
            Promise<void> Chrome 111 und höherPromises 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,
): Promise<Alarm | undefined>
Ruft Details zum angegebenen Wecker ab.
Parameter
Ausgabe
- 
            Promise<Alarm | undefined> Chrome 91 und höherPromises 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,
): Promise<Alarm[]>
Ruft ein Array aller Wecker ab.
Parameter
Ausgabe
- 
            Promise<Alarm[]> Chrome 91 und höherPromises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.