Açıklama
Kodu düzenli aralıklarla veya gelecekte belirli bir zamanda çalışacak şekilde planlamak için chrome.alarms
API'yi kullanın.
İzinler
alarms
Manifest
chrome.alarms
API'yi kullanmak için manifest dosyasında "alarms"
iznini beyan edin:
{
"name": "My extension",
...
"permissions": [
"alarms"
],
...
}
Örnekler
Aşağıdaki örneklerde bir alarmın nasıl kullanılacağı ve alarma nasıl yanıt verileceği gösterilmektedir. Bu API'yi denemek için chrome-extension-samples bölümünden Alarm API örneğini yükleyin. depodur.
Alarm kur
Aşağıdaki örnekte, uzantı yüklendiğinde Service Worker'da bir alarm ayarlanmaktadır:
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
});
});
Alarmlara yanıt verme
Aşağıdaki örnekte, çalan alarmın adına göre işlem araç çubuğu simgesi ayarlanmaktadır.
service-worker.js:
chrome.alarms.onAlarm.addListener((alarm) => {
chrome.action.setIcon({
path: getIconPath(alarm.name),
});
});
Türler
Alarm
Özellikler
-
ad
dize
Bu alarmın adı.
-
periodInMinutes
sayı isteğe bağlı
Değer boş değilse alarm tekrar eden bir alarmdır ve
periodInMinutes
dakika içinde tekrar çalacaktır. -
scheduledTime
sayı
Bu alarmın çalmak için programlandığı zaman (sıfır zamandan sonra, milisaniye cinsinden) (ör.
Date.now() + n
). Performans nedeniyle, alarm bunun dışında isteğe bağlı bir miktarda gecikmiş olabilir.
AlarmCreateInfo
Özellikler
-
delayInMinutes
sayı isteğe bağlı
onAlarm
etkinliğinin, dakika cinsinden etkinleşmesi gereken süre. -
periodInMinutes
sayı isteğe bağlı
Ayarlanırsa onAlarm etkinliği,
when
veyadelayInMinutes
tarafından belirtilen ilk etkinlikten sonra herperiodInMinutes
dakikada bir etkinleşmelidir. Ayarlanmazsa alarm yalnızca bir kez çalar. -
ne zaman
sayı isteğe bağlı
Alarmın çalması gereken zaman (sıfır zamandan sonra milisaniye olarak). (ör.
Date.now() + n
).
Yöntemler
clear()
chrome.alarms.clear(
name?: string,
callback?: function,
)
Verilen ada sahip alarmı temizler.
Parametreler
-
ad
dize isteğe bağlı
Silinecek alarmın adı. Varsayılan olarak boş dize kullanılır.
-
geri çağırma
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:(wasCleared: boolean) => void
-
wasCleared
boolean
-
İadeler
-
Promise<boolean>
Chrome 91 ve sonraki sürümler 'nı inceleyin.Vaatler yalnızca Manifest V3 ve sonraki sürümler için desteklenir. Diğer platformların geri çağırma yapması gerekir.
clearAll()
chrome.alarms.clearAll(
callback?: function,
)
Tüm alarmları temizler.
Parametreler
-
geri çağırma
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:(wasCleared: boolean) => void
-
wasCleared
boolean
-
İadeler
-
Promise<boolean>
Chrome 91 ve sonraki sürümler 'nı inceleyin.Vaatler yalnızca Manifest V3 ve sonraki sürümler için desteklenir. Diğer platformların geri çağırma yapması gerekir.
create()
chrome.alarms.create(
name?: string,
alarmInfo: AlarmCreateInfo,
callback?: function,
)
Alarm oluşturur. alarmInfo
tarafından belirtilen zamanlara yakın zamanlarda onAlarm
etkinliği tetiklenir. Aynı ada sahip (veya başka bir alarm belirtilmemişse adı belirtilmezse) başka bir alarm varsa bu alarm iptal edilir ve bu alarmla değiştirilir.
Chrome, kullanıcının makinesindeki yükü azaltmak için alarmları en fazla 30 saniyede bir olacak şekilde sınırlandırır, ancak alarmları isteğe bağlı bir şekilde daha fazla geciktirebilir. Yani delayInMinutes
veya periodInMinutes
değerinin 0.5
değerinden düşük bir değere ayarlanması dikkate alınmaz ve uyarı verilir. when
, "şimdi" ifadesinden sonra 30 saniyeden kısa bir süreye ayarlanabilir uyarı olmadan, ancak alarmın en az 30 saniye boyunca tetiklenmesine neden olmaz.
Uygulama veya uzantınızı paketlenmemiş olarak yüklediğinizde hata ayıklamanıza yardımcı olması için alarmın ne sıklıkta tetiklenebileceğiyle ilgili bir sınır yoktur.
Parametreler
-
ad
dize isteğe bağlı
Bu alarmı tanımlamak için isteğe bağlı ad. Varsayılan olarak boş dize kullanılır.
-
alarmInfo
Alarmın ne zaman çalması gerektiğini tanımlar. İlk zaman
when
veyadelayInMinutes
(ikisi birden değil) ile belirtilmelidir.periodInMinutes
ayarlandıysa alarm ilk etkinlikten sonra herperiodInMinutes
dakikada bir tekrarlanır. Tekrarlanan alarm içinwhen
veyadelayInMinutes
ayarlanmadıysadelayInMinutes
için varsayılan olarakperiodInMinutes
kullanılır. -
geri çağırma
işlev isteğe bağlı
Chrome 111 ve sonraki sürümler 'nı inceleyin.callback
parametresi şu şekilde görünür:() => void
İadeler
-
Taahhüt<void>
Chrome 111 ve sonraki sürümler 'nı inceleyin.Vaatler yalnızca Manifest V3 ve sonraki sürümler için desteklenir. Diğer platformların geri çağırma yapması gerekir.
get()
chrome.alarms.get(
name?: string,
callback?: function,
)
Belirtilen alarmla ilgili ayrıntıları alır.
Parametreler
İadeler
-
Promise<Alarm | tanımlanmadı>
Chrome 91 ve sonraki sürümler 'nı inceleyin.Vaatler yalnızca Manifest V3 ve sonraki sürümler için desteklenir. Diğer platformların geri çağırma yapması gerekir.
getAll()
chrome.alarms.getAll(
callback?: function,
)
Tüm alarmların bir dizisini alır.
Parametreler
İadeler
-
Söz ver<Alarm[]>
Chrome 91 ve sonraki sürümler 'nı inceleyin.Vaatler yalnızca Manifest V3 ve sonraki sürümler için desteklenir. Diğer platformların geri çağırma yapması gerekir.