Deskripsi
Gunakan API chrome.alarms untuk menjadwalkan kode agar berjalan secara berkala atau pada waktu tertentu 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 service worker 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
- 
    namastring Nama alarm ini. 
- 
    periodInMinutesnomor opsional Jika tidak bernilai null, alarm adalah alarm berulang dan akan berbunyi lagi dalam periodInMinutesmenit.
- 
    scheduledTimeangka Waktu saat alarm ini dijadwalkan untuk diaktifkan, dalam milidetik setelah epoch (mis. Date.now() + n). Untuk alasan performa, alarm mungkin telah ditunda dalam jumlah yang tidak ditentukan di luar waktu ini.
AlarmCreateInfo
Properti
- 
    delayInMinutesnomor opsional Durasi waktu dalam menit setelah peristiwa onAlarmharus dipicu.
- 
    periodInMinutesnomor opsional Jika disetel, peristiwa onAlarm akan dipicu setiap periodInMinutesmenit setelah peristiwa awal yang ditentukan olehwhenataudelayInMinutes. Jika tidak disetel, alarm hanya akan berbunyi satu kali.
- 
    kapannomor 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
- 
    namastring opsional Nama alarm yang akan dihapus. Default-nya adalah string kosong. 
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(wasCleared: boolean) => void - 
    wasClearedboolean 
 
- 
    
Hasil
- 
            Promise<boolean> Chrome 91+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
clearAll()
chrome.alarms.clearAll(
callback?: function,
): Promise<boolean>
Menghapus semua alarm.
Parameter
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(wasCleared: boolean) => void - 
    wasClearedboolean 
 
- 
    
Hasil
- 
            Promise<boolean> Chrome 91+Promise hanya didukung untuk Manifest 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 diaktifkan. Jika ada alarm lain dengan nama yang sama (atau tanpa nama jika tidak ada yang ditentukan), alarm tersebut akan dibatalkan dan digantikan oleh alarm ini.
Untuk mengurangi beban pada mesin pengguna, Chrome membatasi alarm maksimal sekali setiap 30 detik, tetapi dapat menundanya dalam jumlah yang lebih besar. Artinya, menetapkan delayInMinutes atau periodInMinutes ke nilai yang lebih kecil dari 0.5 tidak akan dipatuhi dan akan menyebabkan peringatan. when dapat disetel ke kurang dari 30 detik setelah "sekarang" tanpa peringatan, tetapi sebenarnya tidak akan menyebabkan alarm berbunyi setidaknya selama 30 detik.
Untuk membantu Anda men-debug aplikasi atau ekstensi, saat Anda memuatnya tanpa di-unzip, tidak ada batasan seberapa sering alarm dapat diaktifkan.
Parameter
- 
    namastring opsional Nama opsional untuk mengidentifikasi alarm ini. Default-nya adalah string kosong. 
- 
    alarmInfoMenjelaskan kapan alarm harus berbunyi. Waktu awal harus ditentukan oleh whenataudelayInMinutes(tetapi tidak keduanya). JikaperiodInMinutesdisetel, alarm akan berulang setiapperiodInMinutesmenit setelah peristiwa awal. JikawhenataudelayInMinutestidak disetel untuk alarm berulang,periodInMinutesakan digunakan sebagai default untukdelayInMinutes.
- 
    callbackfungsi opsional Chrome 111+Parameter callbackterlihat seperti:() => void 
Hasil
- 
            Promise<void> Chrome 111+Promise hanya didukung untuk Manifest 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 Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
getAll()
chrome.alarms.getAll(
callback?: function,
): Promise<Alarm[]>
Mendapatkan array semua alarm.
Parameter
Hasil
- 
            Promise<Alarm[]> Chrome 91+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback.