Beschrijving
Gebruik de chrome.alarms
API om code te plannen die periodiek of op een bepaald tijdstip in de toekomst wordt uitgevoerd.
Machtigingen
alarms
Manifest
Om de chrome.alarms
API te gebruiken, declareert u de machtiging "alarms"
in het manifest :
{
"name": "My extension",
...
"permissions": [
"alarms"
],
...
}
Voorbeelden
De volgende voorbeelden laten zien hoe u een alarm kunt gebruiken en erop kunt reageren. Om deze API uit te proberen, installeert u het Alarm API-voorbeeld uit de repository chrome-extension-samples .
Stel een alarm in
In het volgende voorbeeld wordt een alarm ingesteld in de service worker wanneer de extensie wordt geïnstalleerd:
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
});
});
Reageren op een alarm
In het volgende voorbeeld wordt het pictogram in de actiebalk ingesteld op basis van de naam van het alarm dat is afgegaan.
service-worker.js:
chrome.alarms.onAlarm.addListener((alarm) => {
chrome.action.setIcon({
path: getIconPath(alarm.name),
});
});
Typen
Alarm
Eigenschappen
- naam
snaar
Naam van dit alarm.
- periodeInMinuten
nummer optioneel
Als het alarm niet nul is, is het een herhalend alarm en zal het
periodInMinutes
minuut opnieuw afgaan. - geplande tijd
nummer
Het tijdstip waarop dit alarm volgens de planning zou afgaan, in milliseconden na het epoch (bijv.
Date.now() + n
). Om prestatieredenen kan het alarm een willekeurige vertraging hebben opgelopen.
AlarmCreateInfo
Eigenschappen
- vertragingInMinuten
nummer optioneel
Tijdsduur in minuten waarna de
onAlarm
gebeurtenis moet worden geactiveerd. - periodeInMinuten
nummer optioneel
Indien ingesteld, moet de onAlarm-gebeurtenis elke
periodInMinutes
minuten na de initiële gebeurtenis, zoals gespecificeerd doorwhen
ofdelayInMinutes
, worden geactiveerd. Indien niet ingesteld, wordt het alarm slechts één keer geactiveerd. - wanneer
nummer optioneel
Tijdstip waarop het alarm moet afgaan, in milliseconden na het tijdperk (bijv.
Date.now() + n
).
Methoden
clear()
chrome.alarms.clear(
name?: string,
callback?: function,
): Promise<boolean>
Wist het alarm met de opgegeven naam.
Parameters
- naam
string optioneel
De naam van het alarm dat moet worden gewist. Standaard is dit een lege tekenreeks.
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:(wasCleared: boolean) => void
- was gewist
Booleaanse
Retourneren
Belofte<boolean>
Chroom 91+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
clearAll()
chrome.alarms.clearAll(
callback?: function,
): Promise<boolean>
Wist alle alarmen.
Parameters
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:(wasCleared: boolean) => void
- was gewist
Booleaanse
Retourneren
Belofte<boolean>
Chroom 91+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
create()
chrome.alarms.create(
name?: string,
alarmInfo: AlarmCreateInfo,
callback?: function,
): Promise<void>
Creëert een alarm. Rond de tijd(en) die zijn opgegeven door alarmInfo
, wordt de gebeurtenis onAlarm
geactiveerd. Als er een ander alarm is met dezelfde naam (of geen naam als er geen is opgegeven), wordt dit geannuleerd en vervangen door dit alarm.
Om de belasting van de computer van de gebruiker te verminderen, beperkt Chrome alarmen tot maximaal één keer per 30 seconden, maar kan ze een willekeurig aantal seconden langer vertragen. Een instelling van delayInMinutes
of periodInMinutes
op minder dan 0.5
wordt dus niet gehonoreerd en genereert een waarschuwing. when
kan worden ingesteld op minder dan 30 seconden na "nu" zonder waarschuwing, maar zorgt er niet voor dat het alarm daadwerkelijk gedurende ten minste 30 seconden afgaat.
Om u te helpen bij het debuggen van uw app of extensie, geldt er een onbeperkt aantal keren dat het alarm afgaat nadat u de app of extensie hebt uitgepakt.
Parameters
- naam
string optioneel
Optionele naam om dit alarm te identificeren. Standaard is dit een lege tekenreeks.
- alarmInfo
Beschrijft wanneer het alarm moet afgaan. De initiële tijd moet worden opgegeven met
when
ofdelayInMinutes
(maar niet met beide). AlsperiodInMinutes
is ingesteld, wordt het alarm elkeperiodInMinutes
minuten na de initiële gebeurtenis herhaald. Alswhen
ofdelayInMinutes
niet is ingesteld voor een herhalend alarm, wordtperiodInMinutes
als standaardwaarde voordelayInMinutes
gebruikt. - terugbellen
functie optioneel
Chroom 111+De
callback
ziet er als volgt uit:() => void
Retourneren
Belofte<leegte>
Chroom 111+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
get()
chrome.alarms.get(
name?: string,
callback?: function,
): Promise<Alarm | undefined>
Haalt details op over het opgegeven alarm.
Parameters
Retourneren
Belofte< Alarm | undefined>
Chroom 91+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
getAll()
chrome.alarms.getAll(
callback?: function,
): Promise<Alarm[]>
Haalt een reeks van alle alarmen op.
Parameters
Retourneren
Belofte< Alarm []>
Chroom 91+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.