chrome.alarms

refresh date: 2026-09-25 robots: noindex

Deskripsi

Gunakan chrome.alarms API untuk menjadwalkan kode agar berjalan secara berkala atau pada waktu yang ditentukan di masa mendatang.

Izin

alarms

Manifes

Untuk menggunakan chrome.alarms API, deklarasikan izin "alarms" dalam manifes:

{
  "name": "My extension",
  ...
  "permissions": [
    "alarms"
  ],
  ...
}

Contoh

Contoh berikut menunjukkan cara menggunakan dan merespons alarm. Untuk mencoba API ini, instal contoh Alarm API dari repositori chrome-extension-samples.

Setel alarm

Contoh berikut menyetel alarm di pekerja layanan saat ekstensi diinstal:

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
  });
});

Merespons alarm

Contoh berikut menetapkan ikon toolbar tindakan berdasarkan nama alarm yang berbunyi.

service-worker.js:

chrome.alarms.onAlarm.addListener((alarm) => {
  chrome.action.setIcon({
    path: getIconPath(alarm.name),
  });
});

Jenis

Alarm

Properti

  • nama

    string

    Nama alarm ini.

  • periodInMinutes

    number opsional

    Jika tidak null, alarm adalah alarm berulang dan akan berbunyi lagi dalam periodInMinutes menit.

  • persistAcrossSessions

    boolean

    Chrome 150+

    Apakah alarm harus tetap ada di seluruh sesi (memulai ulang browser).

  • scheduledTime

    angka

    Waktu alarm ini dijadwalkan untuk berbunyi, dalam milidetik setelah epoch (misalnya, Date.now() + n). Untuk alasan performa, alarm mungkin telah tertunda dalam jumlah arbitrer di luar waktu ini.

AlarmCreateInfo

Properti

  • delayInMinutes

    number opsional

    Durasi waktu dalam menit setelah peristiwa onAlarm diaktifkan.

  • nama

    string opsional

    Chrome 152+

    Nama alarm ini.

  • periodInMinutes

    number opsional

    Jika ditetapkan, peristiwa onAlarm akan diaktifkan setiap periodInMinutes menit setelah peristiwa awal yang ditentukan oleh when atau delayInMinutes. Jika tidak disetel, alarm hanya akan diaktifkan sekali.

  • persistAcrossSessions

    boolean opsional

    Chrome 150+

    Apakah alarm harus tetap ada di seluruh sesi (mulai ulang browser). Di Chrome, nilai defaultnya adalah benar (true) agar sesuai dengan perilaku historis, tetapi Anda harus menetapkannya secara eksplisit untuk memaksimalkan kompatibilitas di seluruh browser.

  • kapan

    number opsional

    Waktu saat alarm harus berbunyi, dalam milidetik setelah epoch (misalnya, Date.now() + n).

Metode

clear()

Promise
chrome.alarms.clear(
  name?: string,
  callback?: function,
)
: Promise<boolean>

Menghapus alarm dengan nama yang diberikan.

Parameter

  • nama

    string opsional

    Nama alarm yang akan dihapus. Default-nya adalah string kosong.

  • callback

    fungsi opsional

    Parameter callback terlihat seperti:

    (wasCleared: boolean) => void

    • wasCleared

      boolean

Hasil

  • Promise<boolean>

    Chrome 91+

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain harus menggunakan callback.

clearAll()

Promise
chrome.alarms.clearAll(
  callback?: function,
)
: Promise<boolean | undefined>

Menghapus semua alarm.

Parameter

  • callback

    fungsi opsional

    Parameter callback terlihat seperti:

    (wasCleared?: boolean) => void

    • wasCleared

      boolean opsional

Hasil

  • Promise<boolean | undefined>

    Chrome 91+

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain harus menggunakan callback.

create()

Promise
chrome.alarms.create(
  name?: string,
  alarmInfo: AlarmCreateInfo,
  callback?: function,
)
: Promise<void>

Membuat alarm. Mendekati waktu yang ditentukan oleh alarmInfo, peristiwa onAlarm akan diaktifkan. Jika ada alarm lain dengan nama yang sama (atau tanpa nama jika tidak ditentukan), alarm tersebut akan dibatalkan dan diganti dengan alarm ini.

Untuk mengurangi beban pada perangkat pengguna, Chrome membatasi alarm maksimal sekali setiap detik, tetapi dapat menundanya dalam jumlah yang tidak ditentukan. Artinya, menetapkan delayInMinutes atau periodInMinutes ke kurang dari 1 detik tidak akan dihormati dan akan menyebabkan peringatan. when dapat disetel ke kurang dari 1 detik setelah "sekarang" tanpa peringatan, tetapi tidak akan menyebabkan alarm berbunyi setidaknya selama 1 detik.

Parameter

  • nama

    string opsional

    Nama opsional untuk mengidentifikasi alarm ini. Default-nya adalah string kosong.

  • alarmInfo

    Menjelaskan kapan alarm harus diaktifkan. Waktu awal harus ditentukan oleh when atau delayInMinutes (tetapi tidak keduanya). Jika periodInMinutes disetel, alarm akan berulang setiap periodInMinutes menit setelah peristiwa awal. Jika when atau delayInMinutes tidak ditetapkan untuk alarm berulang, periodInMinutes akan digunakan sebagai default untuk delayInMinutes.

  • callback

    fungsi opsional

    Chrome 111+

    Parameter callback terlihat seperti:

    () => void

Hasil

  • Promise<void>

    Chrome 111+

    Promise yang di-resolve saat alarm telah dibuat.

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain harus menggunakan callback.

get()

Promise
chrome.alarms.get(
  name?: string,
  callback?: function,
)
: Promise<Alarm | undefined>

Mengambil detail tentang alarm yang ditentukan.

Parameter

  • nama

    string opsional

    Nama alarm yang akan didapatkan. Default-nya adalah string kosong.

  • callback

    fungsi opsional

    Parameter callback terlihat seperti:

    (alarm?: Alarm) => void

Hasil

  • Promise<Alarm | undefined>

    Chrome 91+

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain harus menggunakan callback.

getAll()

Promise
chrome.alarms.getAll(
  callback?: function,
)
: Promise<Alarm[]>

Mendapatkan array dari semua alarm.

Parameter

  • callback

    fungsi opsional

    Parameter callback terlihat seperti:

    (alarms: Alarm[]) => void

Hasil

  • Promise<Alarm[]>

    Chrome 91+

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain harus menggunakan callback.

Acara

onAlarm

chrome.alarms.onAlarm.addListener(
  callback: function,
)

Diaktifkan saat alarm telah berlalu. Berguna untuk halaman acara.

Parameter

  • callback

    fungsi

    Parameter callback terlihat seperti:

    (alarm: Alarm) => void