Descrizione
Utilizza l'API chrome.alarms per pianificare l'esecuzione del codice periodicamente o in un momento specifico in futuro.
Autorizzazioni
alarmsManifest
Per utilizzare l'API chrome.alarms, dichiara l'autorizzazione "alarms" nel manifest:
{
"name": "My extension",
...
"permissions": [
"alarms"
],
...
}
Esempi
Gli esempi seguenti mostrano come utilizzare e rispondere a un allarme. Per provare questa API, installa l'esempio di API Alarm dal repository chrome-extension-samples.
Imposta una sveglia
Il seguente esempio imposta una sveglia nel service worker quando l'estensione viene installata:
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 un allarme
L'esempio seguente imposta l'icona della barra degli strumenti delle azioni in base al nome dell'allarme attivato.
service-worker.js:
chrome.alarms.onAlarm.addListener((alarm) => {
chrome.action.setIcon({
path: getIconPath(alarm.name),
});
});
Tipi
Alarm
Proprietà
-
nome
stringa
Il nome di questa sveglia.
-
periodInMinutes
number (facoltativo)
Se non è nullo, la sveglia è ripetuta e suonerà di nuovo tra
periodInMinutesminuti. -
scheduledTime
numero
Ora in cui è stata pianificata l'attivazione di questo allarme, in millisecondi trascorsi dall'epoca (ad es.
Date.now() + n). Per motivi di prestazioni, l'allarme potrebbe essere stato ritardato di un intervallo di tempo arbitrario.
AlarmCreateInfo
Proprietà
-
delayInMinutes
number (facoltativo)
Durata in minuti dopo la quale deve essere attivato l'evento
onAlarm. -
periodInMinutes
number (facoltativo)
Se impostato, l'evento onAlarm deve essere attivato ogni
periodInMinutesminuti dopo l'evento iniziale specificato dawhenodelayInMinutes. Se non viene impostato, l'allarme si attiverà una sola volta. -
quando
number (facoltativo)
Ora in cui deve scattare l'allarme, in millisecondi dopo l'epoca (ad es.
Date.now() + n).
Metodi
clear()
chrome.alarms.clear(
name?: string,
callback?: function,
): Promise<boolean>
Cancella la sveglia con il nome specificato.
Parametri
-
nome
stringa facoltativa
Il nome dell'allarme da cancellare. Il valore predefinito è la stringa vuota.
-
callback
funzione facoltativa
Il parametro
callbackha il seguente aspetto:(wasCleared: boolean) => void
-
wasCleared
booleano
-
Resi
-
Promise<boolean>
Chrome 91+Le promesse sono supportate solo per Manifest V3 e versioni successive, le altre piattaforme devono utilizzare i callback.
clearAll()
chrome.alarms.clearAll(
callback?: function,
): Promise<boolean>
Cancella tutte le sveglie.
Parametri
-
callback
funzione facoltativa
Il parametro
callbackha il seguente aspetto:(wasCleared: boolean) => void
-
wasCleared
booleano
-
Resi
-
Promise<boolean>
Chrome 91+Le promesse sono supportate solo per Manifest V3 e versioni successive, le altre piattaforme devono utilizzare i callback.
create()
chrome.alarms.create(
name?: string,
alarmInfo: AlarmCreateInfo,
callback?: function,
): Promise<void>
Crea una sveglia. In prossimità dell'ora o delle ore specificate da alarmInfo, viene attivato l'evento onAlarm. Se esiste un'altra sveglia con lo stesso nome (o senza nome se non ne è stato specificato uno), verrà annullata e sostituita da questa sveglia.
Per ridurre il carico sulla macchina dell'utente, Chrome limita gli allarmi a un massimo di una volta ogni 30 secondi, ma può ritardarli di un ulteriore periodo di tempo arbitrario. ovvero l'impostazione di delayInMinutes o periodInMinutes su un valore inferiore a 0.5 non verrà rispettata e verrà visualizzato un avviso. when può essere impostato su un valore inferiore a 30 secondi dopo "ora" senza avviso, ma non attiverà la sveglia per almeno 30 secondi.
Per aiutarti a eseguire il debug dell'app o dell'estensione, una volta caricata decompressa, non esiste un limite alla frequenza con cui può attivarsi l'allarme.
Parametri
-
nome
stringa facoltativa
Nome facoltativo per identificare questo allarme. Il valore predefinito è la stringa vuota.
-
alarmInfo
Descrive quando deve attivarsi l'allarme. L'ora iniziale deve essere specificata da
whenodelayInMinutes(ma non entrambi). SeperiodInMinutesè impostato, l'allarme si ripeterà ogniperiodInMinutesminuti dopo l'evento iniziale. Se non viene impostato néwhennédelayInMinutesper una sveglia ripetuta,periodInMinutesviene utilizzato come valore predefinito perdelayInMinutes. -
callback
funzione facoltativa
Chrome 111+Il parametro
callbackha il seguente aspetto:() => void
Resi
-
Promise<void>
Chrome 111+Le promesse sono supportate solo per Manifest V3 e versioni successive, le altre piattaforme devono utilizzare i callback.
get()
chrome.alarms.get(
name?: string,
callback?: function,
): Promise<Alarm | undefined>
Recupera i dettagli della sveglia specificata.
Parametri
Resi
-
Promise<Alarm | undefined>
Chrome 91+Le promesse sono supportate solo per Manifest V3 e versioni successive, le altre piattaforme devono utilizzare i callback.
getAll()
chrome.alarms.getAll(
callback?: function,
): Promise<Alarm[]>
Restituisce un array di tutte le sveglie.
Parametri
Resi
-
Promise<Alarm[]>
Chrome 91+Le promesse sono supportate solo per Manifest V3 e versioni successive, le altre piattaforme devono utilizzare i callback.