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
alarmsManifes
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
periodInMinutesmenit. -
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
onAlarmdiaktifkan. -
nama
string opsional
Chrome 152+Nama alarm ini.
-
periodInMinutes
number opsional
Jika ditetapkan, peristiwa onAlarm akan diaktifkan setiap
periodInMinutesmenit setelah peristiwa awal yang ditentukan olehwhenataudelayInMinutes. 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()
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
callbackterlihat 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()
chrome.alarms.clearAll(
callback?: function,
): Promise<boolean | undefined>
Menghapus semua alarm.
Parameter
-
callback
fungsi opsional
Parameter
callbackterlihat 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()
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
whenataudelayInMinutes(tetapi tidak keduanya). JikaperiodInMinutesdisetel, alarm akan berulang setiapperiodInMinutesmenit setelah peristiwa awal. JikawhenataudelayInMinutestidak ditetapkan untuk alarm berulang,periodInMinutesakan digunakan sebagai default untukdelayInMinutes. -
callback
fungsi opsional
Chrome 111+Parameter
callbackterlihat 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()
chrome.alarms.get(
name?: string,
callback?: function,
): Promise<Alarm | undefined>
Mengambil detail tentang alarm yang ditentukan.
Parameter
Hasil
-
Promise<Alarm | undefined>
Chrome 91+Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain harus menggunakan callback.
getAll()
chrome.alarms.getAll(
callback?: function,
): Promise<Alarm[]>
Mendapatkan array dari semua alarm.
Parameter
Hasil
-
Promise<Alarm[]>
Chrome 91+Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain harus menggunakan callback.