chroom.alarmen

Beschrijving

Gebruik de chrome.alarms API om code in te plannen die periodiek of op een specifiek tijdstip in de toekomst moet worden uitgevoerd.

Toestemmingen

alarms

Manifest

Om de chrome.alarms API te gebruiken, moet je de "alarms" -toestemming in het manifest declareren:

{
  "name": "My extension",
  ...
  "permissions": [
    "alarms"
  ],
  ...
}

Voorbeelden

De volgende voorbeelden laten zien hoe je een alarm kunt gebruiken en erop kunt reageren. Om deze API uit te proberen, installeer je het Alarm API-voorbeeld uit de chrome-extension-samples repository.

Stel een alarm in

Het volgende voorbeeld stelt een alarm in de service worker in 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
  });
});

Reageer op een alarm

Het volgende voorbeeld stelt het pictogram van de actiewerkbalk in 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),
  });
});

Soorten

Alarm

Eigenschappen

  • naam

    snaar

    Naam van dit alarm.

  • periodeInMinuten

    nummer optioneel

    Als het alarm niet null is, is het een herhalend alarm en zal het na periodInMinutes minuten opnieuw afgaan.

  • geplande tijd

    nummer

    Het tijdstip waarop dit alarm gepland stond af te gaan, in milliseconden na de epoch (bijv. Date.now() + n ). Om prestatieproblemen te voorkomen, kan het alarm willekeurig met een bepaalde tijd zijn vertraagd.

AlarmCreateInfo

Eigenschappen

  • vertragingInMinuten

    nummer optioneel

    De 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, gespecificeerd door when of delayInMinutes , worden geactiveerd. Indien niet ingesteld, zal het alarm slechts één keer worden geactiveerd.

  • wanneer

    nummer optioneel

    Het tijdstip waarop het alarm moet afgaan, in milliseconden na de epoch (bijv. Date.now() + n ).

Methoden

clear()

Belofte
chrome.alarms.clear(
  name?: string,
  callback?: function,
)
: Promise<boolean>

Schakelt het alarm met de opgegeven naam uit.

Parameters

  • naam

    string optioneel

    De naam van het alarm dat moet worden gewist. Standaard is dit een lege tekenreeks.

  • terugbelverzoek

    functie optioneel

    De callback parameter ziet er als volgt uit:

    (wasCleared: boolean) => void

    • werd gewist

      booleaans

Retourneert

  • Belofte<boolean>

    Chrome 91+

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

clearAll()

Belofte
chrome.alarms.clearAll(
  callback?: function,
)
: Promise<boolean>

Alle alarmen worden uitgeschakeld.

Parameters

  • terugbelverzoek

    functie optioneel

    De callback parameter ziet er als volgt uit:

    (wasCleared: boolean) => void

    • werd gewist

      booleaans

Retourneert

  • Belofte<boolean>

    Chrome 91+

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

create()

Belofte
chrome.alarms.create(
  name?: string,
  alarmInfo: AlarmCreateInfo,
  callback?: function,
)
: Promise<void>

Hiermee wordt een alarm aangemaakt. Rond de tijd(en) die zijn opgegeven in alarmInfo , wordt de onAlarm gebeurtenis geactiveerd. Als er een ander alarm met dezelfde naam bestaat (of zonder 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 willekeurig langer uitstellen. Dat wil zeggen dat het instellen delayInMinutes of periodInMinutes op minder dan 0.5 geen effect heeft en een waarschuwing geeft. when kan worden ingesteld op minder dan 30 seconden na "nu" zonder waarschuwing, maar het alarm zal pas na minimaal 30 seconden afgaan.

Om je te helpen bij het debuggen van je app of extensie, is er geen limiet aan hoe vaak het alarm kan afgaan wanneer je deze uitgepakt hebt geladen.

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 begintijd moet worden opgegeven met ' when of delayInMinutes (maar niet beide). Als periodInMinutes is ingesteld, zal het alarm zich elke ' periodInMinutes minuten na de eerste gebeurtenis herhalen. Als noch ' when noch delayInMinutes is ingesteld voor een herhalend alarm, wordt periodInMinutes gebruikt als standaardwaarde voor delayInMinutes .

  • terugbelverzoek

    functie optioneel

    Chrome 111+

    De callback parameter ziet er als volgt uit:

    () => void

Retourneert

  • Promise<void>

    Chrome 111+

    Een belofte die wordt afgehandeld zodra het alarm is aangemaakt.

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

get()

Belofte
chrome.alarms.get(
  name?: string,
  callback?: function,
)
: Promise<Alarm | undefined>

Geeft details weer over het opgegeven alarm.

Parameters

  • naam

    string optioneel

    De naam van het alarm dat moet worden opgehaald. Standaard is dit een lege tekenreeks.

  • terugbelverzoek

    functie optioneel

    De callback parameter ziet er als volgt uit:

    (alarm?: Alarm) => void

Retourneert

  • Belofte< Alarm | niet gedefinieerd>

    Chrome 91+

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

getAll()

Belofte
chrome.alarms.getAll(
  callback?: function,
)
: Promise<Alarm[]>

Geeft een overzicht van alle alarmen.

Parameters

  • terugbelverzoek

    functie optioneel

    De callback parameter ziet er als volgt uit:

    (alarms: Alarm[]) => void

Retourneert

  • Belofte< Alarm []>

    Chrome 91+

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

Evenementen

onAlarm

chrome.alarms.onAlarm.addListener(
  callback: function,
)

Wordt geactiveerd wanneer een alarm is afgelopen. Handig voor gebeurtenispagina's.

Parameters

  • terugbelverzoek

    functie

    De callback parameter ziet er als volgt uit:

    (alarm: Alarm) => void