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
alarmsFichier 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
- 
    nomchaîne Nom de cette alarme. 
- 
    periodInMinutesnumber facultatif Si la valeur n'est pas nulle, l'alarme est répétée et se déclenchera à nouveau dans periodInMinutesminutes.
- 
    scheduledTimeTotal 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
- 
    delayInMinutesnumber facultatif Durée en minutes après laquelle l'événement onAlarmdoit se déclencher.
- 
    periodInMinutesnumber facultatif Si elle est définie, l'événement onAlarm doit se déclencher toutes les periodInMinutesminutes après l'événement initial spécifié parwhenoudelayInMinutes. Si elle n'est pas définie, l'alarme ne se déclenchera qu'une seule fois.
- 
    whennumber 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
- 
    nomchaîne facultative Nom de l'alarme à désactiver. La valeur par défaut est une chaîne vide. 
- 
    callbackfunction facultatif Le paramètre callbackse présente comme suit :(wasCleared: boolean) => void - 
    wasClearedboolé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
- 
    callbackfunction facultatif Le paramètre callbackse présente comme suit :(wasCleared: boolean) => void - 
    wasClearedboolé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
- 
    nomchaîne facultative Nom facultatif permettant d'identifier cette alarme. La valeur par défaut est une chaîne vide. 
- 
    alarmInfoDécrit quand l'alarme doit se déclencher. L'heure initiale doit être spécifiée par whenoudelayInMinutes(mais pas les deux). SiperiodInMinutesest défini, l'alarme se répète toutes lesperiodInMinutesminutes après l'événement initial. Si niwhennidelayInMinutesne sont définis pour une alarme récurrente,periodInMinutesest utilisé par défaut pourdelayInMinutes.
- 
    callbackfunction facultatif Chrome 111 et versions ultérieuresLe paramètre callbackse 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.