Description
Utilisez l'API chrome.alarms
pour planifier l'exécution de code à intervalles réguliers ou à une heure spécifique dans le futur.
Autorisations
alarms
Fichier manifeste
Pour utiliser l'API chrome.alarms
, déclarez l'autorisation "alarms"
dans le fichier manifeste :
{
"name": "My extension",
...
"permissions": [
"alarms"
],
...
}
Exemples
Les exemples suivants montrent comment utiliser une alarme et y répondre. Pour essayer cette API, installez l'exemple d'API Alarm à partir du dépôt chrome-extension-samples.
Régler une alarme
L'exemple suivant définit une alarme dans le service worker lorsque l'extension est installée :
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
});
});
Répondre à une alarme
L'exemple suivant définit l'icône de la barre d'action en fonction du nom de l'alarme qui s'est déclenchée.
service-worker.js :
chrome.alarms.onAlarm.addListener((alarm) => {
chrome.action.setIcon({
path: getIconPath(alarm.name),
});
});
Types
Alarm
Propriétés
-
nom
chaîne
Nom de cette alarme.
-
periodInMinutes
number facultatif
Si la valeur n'est pas nulle, l'alarme est répétée et se déclenchera à nouveau dans
periodInMinutes
minutes. -
scheduledTime
Total
Heure à laquelle cette alarme devait se déclencher, en millisecondes depuis l'époque (par exemple,
Date.now() + n
). Pour des raisons de performances, l'alarme peut avoir été retardée d'une durée arbitraire.
AlarmCreateInfo
Propriétés
-
delayInMinutes
number facultatif
Durée en minutes après laquelle l'événement
onAlarm
doit se déclencher. -
periodInMinutes
number facultatif
Si elle est définie, l'événement onAlarm doit se déclencher toutes les
periodInMinutes
minutes après l'événement initial spécifié parwhen
oudelayInMinutes
. Si elle n'est pas définie, l'alarme ne se déclenchera qu'une seule fois. -
when
number facultatif
Heure à laquelle l'alarme doit se déclencher, en millisecondes depuis l'époque (par exemple,
Date.now() + n
).
Méthodes
clear()
chrome.alarms.clear(
name?: string,
callback?: function,
): Promise<boolean>
Efface l'alarme portant le nom indiqué.
Paramètres
-
nom
chaîne facultative
Nom de l'alarme à désactiver. La valeur par défaut est une chaîne vide.
-
callback
function facultatif
Le paramètre
callback
se présente comme suit :(wasCleared: boolean) => void
-
wasCleared
booléen
-
Renvoie
-
Promise<boolean>
Chrome 91 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
clearAll()
chrome.alarms.clearAll(
callback?: function,
): Promise<boolean>
Efface toutes les alarmes.
Paramètres
-
callback
function facultatif
Le paramètre
callback
se présente comme suit :(wasCleared: boolean) => void
-
wasCleared
booléen
-
Renvoie
-
Promise<boolean>
Chrome 91 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
create()
chrome.alarms.create(
name?: string,
alarmInfo: AlarmCreateInfo,
callback?: function,
): Promise<void>
Crée une alarme. L'événement onAlarm
est déclenché à l'heure ou aux heures spécifiées par alarmInfo
. S'il existe une autre alarme portant le même nom (ou sans nom si aucun n'est spécifié), elle sera annulée et remplacée par cette alarme.
Afin de réduire la charge sur la machine de l'utilisateur, Chrome limite les alarmes à une fois toutes les 30 secondes au maximum, mais peut les retarder d'une durée arbitraire. En d'autres termes, si vous définissez delayInMinutes
ou periodInMinutes
sur une valeur inférieure à 0.5
, cette valeur ne sera pas prise en compte et un avertissement s'affichera. when
peut être défini sur une durée inférieure à 30 secondes après "maintenant" sans avertissement, mais l'alarme ne se déclenchera pas avant au moins 30 secondes.
Pour vous aider à déboguer votre application ou extension, lorsque vous l'avez chargée non compressée, il n'y a pas de limite à la fréquence de déclenchement de l'alarme.
Paramètres
-
nom
chaîne facultative
Nom facultatif permettant d'identifier cette alarme. La valeur par défaut est une chaîne vide.
-
alarmInfo
Décrit quand l'alarme doit se déclencher. L'heure initiale doit être spécifiée par
when
oudelayInMinutes
(mais pas les deux). SiperiodInMinutes
est défini, l'alarme se répète toutes lesperiodInMinutes
minutes après l'événement initial. Si niwhen
nidelayInMinutes
ne sont définis pour une alarme récurrente,periodInMinutes
est utilisé par défaut pourdelayInMinutes
. -
callback
function facultatif
Chrome 111 et versions ultérieuresLe paramètre
callback
se présente comme suit :() => void
Renvoie
-
Promise<void>
Chrome 111 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
get()
chrome.alarms.get(
name?: string,
callback?: function,
): Promise<Alarm | undefined>
Récupère les détails de l'alarme spécifiée.
Paramètres
Renvoie
-
Promise<Alarm | undefined>
Chrome 91 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
getAll()
chrome.alarms.getAll(
callback?: function,
): Promise<Alarm[]>
Récupère un tableau de toutes les alarmes.
Paramètres
Renvoie
-
Promise<Alarm[]>
Chrome 91 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels.