chrome.alarms

Descrizione

Usa l'API chrome.alarms per pianificare l'esecuzione del codice periodicamente o in un orario specifico nel futuro.

Autorizzazioni

alarms

Manifest

Per utilizzare l'API chrome.alarms, dichiara l'autorizzazione "alarms" nel manifest:

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

Esempi

I seguenti esempi mostrano come utilizzare e rispondere a un allarme. Per provare questa API, Installa l'esempio dell'API allarme da chrome-extension-samples. repository Git.

Imposta una sveglia

L'esempio seguente imposta un allarme nel service worker quando viene installata l'estensione:

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
  });
});

Rispondere a una sveglia

L'esempio seguente imposta l'icona della barra degli strumenti delle azioni in base al nome della sveglia che si è attivata.

service-worker.js:

chrome.alarms.onAlarm.addListener((alarm) => {
  chrome.action.setIcon({
    path: getIconPath(alarm.name),
  });
});

Tipi

Alarm

Proprietà

  • nome

    stringa

    Nome della sveglia.

  • periodInMinutes

    numero facoltativo

    Se il valore non è null, la sveglia è una sveglia ripetuta e si riattiva tra periodInMinutes minuti.

  • scheduledTime

    numero

    Ora in cui l'allarme è stato programmato, in millisecondi dopo l'epoca (ad esempio Date.now() + n). Per motivi legati alle prestazioni, l'allarme potrebbe essere stato ritardato di una quantità arbitraria oltre questo valore.

AlarmCreateInfo

Proprietà

  • delayInMinutes

    numero facoltativo

    Periodo di tempo in minuti trascorso il quale deve essere attivato l'evento onAlarm.

  • periodInMinutes

    numero facoltativo

    Se impostato, l'evento onSimulazione deve essere attivato ogni periodInMinutes minuti dopo l'evento iniziale specificato da when o delayInMinutes. Se non viene impostato, l'allarme si attiverà una sola volta.

  • quando

    numero facoltativo

    Ora in cui deve attivarsi l'allarme, in millisecondi dopo l'epoca (ad es. Date.now() + n).

Metodi

clear()

Promesso .
chrome.alarms.clear(
  name?: string,
  callback?: function,
)

Cancella la sveglia con il nome specificato.

Parametri

  • nome

    stringa facoltativo

    Il nome della sveglia da cancellare. Il valore predefinito è la stringa vuota.

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    (wasCleared: boolean) => void

    • wasCleared

      booleano

Resi

  • Promise<boolean>

    Chrome 91 e versioni successive .

    Le promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.

clearAll()

Promesso .
chrome.alarms.clearAll(
  callback?: function,
)

Cancella tutte le sveglie.

Parametri

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    (wasCleared: boolean) => void

    • wasCleared

      booleano

Resi

  • Promise<boolean>

    Chrome 91 e versioni successive .

    Le promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.

create()

Promesso .
chrome.alarms.create(
  name?: string,
  alarmInfo: AlarmCreateInfo,
  callback?: function,
)

Crea una sveglia. In prossimità degli orari specificati da alarmInfo, viene attivato l'evento onAlarm. Se esiste un'altra sveglia con lo stesso nome (o nessun nome se non è specificato), la sveglia verrà annullata e sostituita.

Per ridurre il carico del computer dell'utente, Chrome limita gli allarmi al massimo a una volta ogni 30 secondi, ma potrebbe ritardarli di un importo maggiore in modo arbitrario. Ciò significa che l'impostazione di delayInMinutes o periodInMinutes su un valore inferiore a 0.5 non verrà rispettata e comporterà un avviso. when può essere impostato a meno di 30 secondi dopo "ora" senza preavviso, ma non attiverà effettivamente l'allarme per almeno 30 secondi.

Per aiutarti a eseguire il debug dell'app o dell'estensione, una volta caricata l'app o l'estensione non c'è limite alla frequenza di attivazione dell'allarme.

Parametri

  • nome

    stringa facoltativo

    Nome facoltativo per identificare la sveglia. Il valore predefinito è la stringa vuota.

  • alarmInfo

    Descrive quando deve attivarsi l'allarme. L'ora iniziale deve essere specificata tramite when o delayInMinutes (non entrambi). Se il criterio periodInMinutes è impostato, la sveglia verrà ripetuta ogni periodInMinutes minuti dopo l'evento iniziale. Se né whendelayInMinutes è impostato per una sveglia ricorrente, periodInMinutes viene utilizzato come predefinito per delayInMinutes.

  • callback

    funzione facoltativa

    Chrome 111 e versioni successive .

    Il parametro callback ha il seguente aspetto:

    () => void

Resi

  • Promesso<void>

    Chrome 111 e versioni successive .

    Le promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.

get()

Promesso .
chrome.alarms.get(
  name?: string,
  callback?: function,
)

Recupera i dettagli sull'allarme specificato.

Parametri

  • nome

    stringa facoltativo

    Il nome della sveglia da ricevere. Il valore predefinito è la stringa vuota.

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    (alarm?: Alarm) => void

Resi

  • Promise&lt;Alarm | non definito>

    Chrome 91 e versioni successive .

    Le promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.

getAll()

Promesso .
chrome.alarms.getAll(
  callback?: function,
)

Ottiene un array di tutti gli allarmi.

Parametri

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    (alarms: Alarm[]) => void

Resi

  • Prometti<sveglia[]>

    Chrome 91 e versioni successive .

    Le promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.

Eventi

onAlarm

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

Attivato quando una sveglia è scaduta. Utile per le pagine degli eventi.

Parametri

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

    (alarm: Alarm) => void