Deskripsi
Gunakan chrome.alarms
API untuk menjadwalkan kode untuk dijalankan secara berkala atau pada waktu tertentu 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 chrome-extension-samples repositori resource.
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
angka opsional
Jika bukan null, alarm adalah alarm berulang dan akan berbunyi lagi dalam
periodInMinutes
menit. -
scheduledTime
angka
Waktu saat alarm ini dijadwalkan untuk dipicu, dalam milidetik setelah epoch (mis.
Date.now() + n
). Karena alasan performa, alarm mungkin telah tertunda dalam jumlah berapa pun setelah ini.
AlarmCreateInfo
Properti
-
delayInMinutes
angka opsional
Durasi waktu dalam menit setelah peristiwa
onAlarm
harus diaktifkan. -
periodInMinutes
angka opsional
Jika disetel, peristiwa onAlarm akan diaktifkan setiap
periodInMinutes
menit setelah peristiwa awal yang ditentukan olehwhen
ataudelayInMinutes
. Jika tidak disetel, alarm hanya akan berbunyi satu kali. -
kapan
angka opsional
Waktu saat alarm harus dipicu, dalam milidetik setelah epoch (mis.
Date.now() + n
).
Metode
clear()
chrome.alarms.clear(
name?: string,
callback?: function,
)
Menghapus alarm yang diberi nama.
Parameter
-
nama
string opsional
Nama alarm yang akan dihapus. Default-nya adalah string kosong.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(wasCleared: boolean) => void
-
wasCleared
boolean
-
Hasil
-
Promise<boolean>
Chrome 91 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
clearAll()
chrome.alarms.clearAll(
callback?: function,
)
Menghapus semua alarm.
Parameter
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(wasCleared: boolean) => void
-
wasCleared
boolean
-
Hasil
-
Promise<boolean>
Chrome 91 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
create()
chrome.alarms.create(
name?: string,
alarmInfo: AlarmCreateInfo,
callback?: function,
)
Membuat alarm. Mendekati waktu yang ditentukan oleh alarmInfo
, peristiwa onAlarm
diaktifkan. Jika ada alarm lain dengan nama yang sama (atau tidak ada nama jika tidak ada yang ditentukan), alarm akan dibatalkan dan diganti dengan alarm ini.
Untuk mengurangi beban komputer pengguna, Chrome membatasi alarm paling tidak sekali setiap 30 detik, tetapi mungkin menundanya lebih banyak lagi. Artinya, menetapkan delayInMinutes
atau periodInMinutes
ke kurang dari 0.5
tidak akan diabaikan dan akan menyebabkan peringatan. when
dapat disetel menjadi kurang dari 30 detik setelah "sekarang" tanpa peringatan, tetapi tidak benar-benar menyebabkan
alarm aktif selama minimal 30 detik.
Untuk membantu Anda men-debug aplikasi atau ekstensi, setelah Anda memuatnya dari paket, tidak ada batas seberapa sering alarm dapat terpicu.
Parameter
-
nama
string opsional
Nama opsional untuk mengidentifikasi alarm ini. Default-nya adalah string kosong.
-
alarmInfo
Menjelaskan kapan alarm harus berbunyi. Waktu awal harus ditentukan oleh
when
ataudelayInMinutes
(tetapi bukan keduanya). JikaperiodInMinutes
disetel, alarm akan berulang setiapperiodInMinutes
menit setelah peristiwa awal. Jikawhen
ataudelayInMinutes
tidak disetel untuk alarm berulang,periodInMinutes
akan digunakan sebagai default untukdelayInMinutes
. -
callback
fungsi opsional
Chrome 111 dan yang lebih baruParameter
callback
terlihat seperti ini:() => void
Hasil
-
Janji<void>
Chrome 111 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
get()
chrome.alarms.get(
name?: string,
callback?: function,
)
Mengambil detail tentang alarm yang ditentukan.
Parameter
Hasil
-
Promise<Alarm | tidak terdefinisi>
Chrome 91 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
getAll()
chrome.alarms.getAll(
callback?: function,
)
Mendapatkan array dari semua alarm.
Parameter
Hasil
-
Janjikan<Alarm[]>
Chrome 91 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.