refresh date: 2026-09-25 robots: noindex
Descripción
Usa la API de chrome.alarms para programar la ejecución de código de forma periódica o en un momento específico en el futuro.
Permisos
alarmsManifiesto
Para usar la API de chrome.alarms, declara el permiso "alarms" en el manifiesto:
{
"name": "My extension",
...
"permissions": [
"alarms"
],
...
}
Ejemplos
En los siguientes ejemplos, se muestra cómo usar una alarma y responder a ella. Para probar esta API, instala el ejemplo de la API de Alarm desde el repositorio chrome-extension-samples.
Cómo establecer una alarma
En el siguiente ejemplo, se configura una alarma en el service worker cuando se instala la extensión:
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
});
});
Cómo responder a una alarma
En el siguiente ejemplo, se establece el ícono de la barra de herramientas de acciones según el nombre de la alarma que se activó.
service-worker.js:
chrome.alarms.onAlarm.addListener((alarm) => {
chrome.action.setIcon({
path: getIconPath(alarm.name),
});
});
Tipos
Alarm
Propiedades
-
nombre
string
Es el nombre de esta alarma.
-
periodInMinutes
number opcional
Si no es nulo, la alarma es recurrente y volverá a sonar en
periodInMinutesminutos. -
persistAcrossSessions
booleano
Chrome 150 o versiones posterioresIndica si la alarma debe persistir entre sesiones (reinicios del navegador).
-
scheduledTime
número
Es la hora en la que se programó la activación de esta alarma, en milisegundos transcurridos desde el tiempo de referencia (p.ej.,
Date.now() + n). Por motivos de rendimiento, es posible que la alarma se haya retrasado una cantidad arbitraria más allá de este valor.
AlarmCreateInfo
Propiedades
-
delayInMinutes
number opcional
Es el período, en minutos, después del cual se debe activar el evento
onAlarm. -
nombre
string opcional
Chrome 152 y versiones posterioresEs el nombre de esta alarma.
-
periodInMinutes
number opcional
Si se establece, el evento onAlarm debería activarse cada
periodInMinutesminutos después del evento inicial especificado porwhenodelayInMinutes. Si no se establece, la alarma solo se activará una vez. -
persistAcrossSessions
booleano opcional
Chrome 150 o versiones posterioresIndica si la alarma debe persistir entre sesiones (reinicios del navegador). En Chrome, el valor predeterminado es verdadero para que coincida con el comportamiento histórico, pero debes establecerlo de forma explícita para maximizar la compatibilidad entre navegadores.
-
cuándo
number opcional
Es la hora en la que se debe activar la alarma, en milisegundos después de la época (p.ej.,
Date.now() + n).
Métodos
clear()
chrome.alarms.clear(
name?: string,
callback?: function,
): Promise<boolean>
Borra la alarma con el nombre determinado.
Parámetros
-
nombre
string opcional
Es el nombre de la alarma que se borrará. La configuración predeterminada es la cadena vacía.
-
callback
función opcional
El parámetro
callbackse ve de la siguiente manera:(wasCleared: boolean) => void
-
wasCleared
booleano
-
Muestra
-
Promise<boolean>
Chrome 91 y versiones posterioresLas promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
clearAll()
chrome.alarms.clearAll(
callback?: function,
): Promise<boolean | undefined>
Borra todas las alarmas.
Parámetros
-
callback
función opcional
El parámetro
callbackse ve de la siguiente manera:(wasCleared?: boolean) => void
-
wasCleared
booleano opcional
-
Muestra
-
Promise<boolean | undefined>
Chrome 91 y versiones posterioresLas promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
create()
chrome.alarms.create(
name?: string,
alarmInfo: AlarmCreateInfo,
callback?: function,
): Promise<void>
Crea una alarma. Cerca de las horas especificadas por alarmInfo, se activa el evento onAlarm. Si hay otra alarma con el mismo nombre (o sin nombre, si no se especifica ninguno), se cancelará y se reemplazará por esta alarma.
Para reducir la carga en la máquina del usuario, Chrome limita las alarmas a una vez por segundo como máximo, pero puede retrasarlas una cantidad arbitraria más. Es decir, no se respetará la configuración de delayInMinutes o periodInMinutes en menos de 1 segundo y se generará una advertencia. when se puede configurar para que se active menos de 1 segundo después de "ahora" sin advertencia, pero no hará que la alarma se active durante al menos 1 segundo.
Parámetros
-
nombre
string opcional
Nombre opcional para identificar esta alarma. La configuración predeterminada es la cadena vacía.
-
alarmInfo
Describe cuándo se debe activar la alarma. La hora inicial se debe especificar con
whenodelayInMinutes(pero no con ambos). Si se estableceperiodInMinutes, la alarma se repetirá cadaperiodInMinutesminutos después del evento inicial. Si no se configuranwhennidelayInMinutespara una alarma repetitiva, se usaperiodInMinutescomo el valor predeterminado dedelayInMinutes. -
callback
función opcional
Chrome 111 y versiones posterioresEl parámetro
callbackse ve de la siguiente manera:() => void
Muestra
-
Promise<void>
Chrome 111 y versiones posterioresEs una promesa que se resuelve cuando se crea la alarma.
Las promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
get()
chrome.alarms.get(
name?: string,
callback?: function,
): Promise<Alarm | undefined>
Recupera detalles sobre la alarma especificada.
Parámetros
Muestra
-
Promise<Alarm | undefined>
Chrome 91 y versiones posterioresLas promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
getAll()
chrome.alarms.getAll(
callback?: function,
): Promise<Alarm[]>
Obtiene un array de todas las alarmas.
Parámetros
Muestra
-
Promise<Alarm[]>
Chrome 91 y versiones posterioresLas promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.