Description
Utilisez l'API chrome.alarms
pour planifier l'exécution du code à intervalles réguliers ou à une heure spécifique.
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 depuis chrome-extension-samples. un dépôt de clés.
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'outils d'action en fonction du nom de l'alarme 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
numéro facultatif
Si la valeur n'est pas nulle, l'alarme est récurrente et se déclenchera de nouveau dans
periodInMinutes
minutes. -
scheduledTime
Nombre
Heure à laquelle cette alarme était programmée pour se déclencher, en millisecondes après l'epoch (par exemple,
Date.now() + n
). Pour des raisons de performances, l'alarme peut avoir été retardée de façon arbitraire au-delà de cette valeur.
AlarmCreateInfo
Propriétés
-
delayInMinutes
numéro facultatif
Durée au terme de laquelle l'événement
onAlarm
doit se déclencher, en minutes. -
periodInMinutes
numéro facultatif
S'il est défini, l'événement onAlarm doit se déclencher toutes les
periodInMinutes
minutes après l'événement initial spécifié parwhen
oudelayInMinutes
. Si cette règle n'est pas configurée, l'alarme ne se déclenchera qu'une seule fois. -
when
numéro facultatif
Heure à laquelle l'alarme doit se déclencher, en millisecondes après l'epoch (par exemple,
Date.now() + n
).
Méthodes
clear()
chrome.alarms.clear(
name?: string,
callback?: function,
)
Efface l'alarme portant le nom donné.
Paramètres
-
nom
chaîne facultatif
Nom de l'alarme à effacer. La valeur par défaut est une chaîne vide.
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:(wasCleared: boolean) => void
-
wasCleared
booléen
-
Renvoie
-
Promise<boolean>
Chrome 91 ou version ultérieureLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
clearAll()
chrome.alarms.clearAll(
callback?: function,
)
Efface toutes les alarmes.
Paramètres
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:(wasCleared: boolean) => void
-
wasCleared
booléen
-
Renvoie
-
Promise<boolean>
Chrome 91 ou version ultérieureLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
create()
chrome.alarms.create(
name?: string,
alarmInfo: AlarmCreateInfo,
callback?: function,
)
Crée une alarme. L'événement onAlarm
est déclenché peu avant les 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 l'ordinateur de l'utilisateur, Chrome limite les alarmes à une fois toutes les 30 secondes maximum, mais peut les retarder davantage. Autrement dit, si vous définissez delayInMinutes
ou periodInMinutes
sur une valeur inférieure à 0.5
, ce paramètre ne sera pas appliqué et déclenchera un avertissement. when
peut être défini sur moins de 30 secondes après "maintenant" sans avertissement préalable, mais sans déclencher l'alarme pendant au moins 30 secondes.
Pour vous aider à déboguer votre application ou votre extension, une fois chargées, la fréquence de déclenchement de l'alarme n'est pas limitée.
Paramètres
-
nom
chaîne facultatif
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 soit par
when
, soit pardelayInMinutes
(mais pas les deux). SiperiodInMinutes
est défini, l'alarme se répète toutes lesperiodInMinutes
minutes après l'événement initial. Si aucune des alarmeswhen
etdelayInMinutes
n'est définie pour une alarme récurrente, la valeurperiodInMinutes
est utilisée par défaut pourdelayInMinutes
. -
rappel
function facultatif
Chrome 111 ou version ultérieureLe paramètre
callback
se présente comme suit:() => void
Renvoie
-
Promesse<void>
Chrome 111 ou version ultérieureLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
get()
chrome.alarms.get(
name?: string,
callback?: function,
)
Récupère les détails de l'alarme spécifiée.
Paramètres
Renvoie
-
Promise<Alarm | indéfini>
Chrome 91 ou version ultérieureLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
getAll()
chrome.alarms.getAll(
callback?: function,
)
Récupère un tableau de toutes les alarmes.
Paramètres
Renvoie
-
Promesse<Alarme[]>
Chrome 91 ou version ultérieureLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.