Açıklama
Kodu periyodik olarak veya gelecekte belirli bir zamanda çalışacak şekilde planlamak için chrome.alarms API'sini kullanın.
İzinler
alarmsManifest
chrome.alarms API'sini kullanmak için manifest dosyasında "alarms" iznini bildirin:
{
  "name": "My extension",
  ...
  "permissions": [
    "alarms"
  ],
  ...
}
Örnekler
Aşağıdaki örneklerde, alarmların nasıl kullanılacağı ve yanıtlanacağı gösterilmektedir. Bu API'yi denemek için chrome-extension-samples deposundan Alarm API örneğini yükleyin.
Alarm kur
Aşağıdaki örnekte, uzantı yüklendiğinde hizmet çalışanında alarm ayarlanı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
  });
});
Alarma yanıt verme
Aşağıdaki örnekte, çalan alarmın adına göre işlem araç çubuğu simgesi ayarlanır.
service-worker.js:
chrome.alarms.onAlarm.addListener((alarm) => {
  chrome.action.setIcon({
    path: getIconPath(alarm.name),
  });
});
Türler
Alarm
Özellikler
- 
    addize Bu alarmın adı. 
- 
    periodInMinutesnumber isteğe bağlı Null değilse alarm yinelenen bir alarmdır ve periodInMinutesdakika sonra tekrar tetiklenir.
- 
    scheduledTimesayı Bu alarmın tetiklenmesi planlanan zaman, dönemden sonraki milisaniye cinsinden (ör. Date.now() + n). Performans nedenleriyle alarm, bu sürenin ötesinde rastgele bir süre gecikmiş olabilir.
AlarmCreateInfo
Özellikler
- 
    delayInMinutesnumber isteğe bağlı onAlarmetkinliğinin tetiklenmesi gereken süre (dakika cinsinden).
- 
    periodInMinutesnumber isteğe bağlı Ayarlanırsa onAlarm etkinliği, whenveyadelayInMinutesile belirtilen ilk etkinlikten sonra herperiodInMinutesdakikada bir tetiklenmelidir. Ayarlanmazsa alarm yalnızca bir kez çalar.
- 
    ne zamannumber isteğe bağlı Alarmın tetiklenmesi gereken zaman (sıfır zaman milisaniyesi cinsinden) (ör. Date.now() + n).
Yöntemler
clear()
chrome.alarms.clear(
name?: string,
callback?: function,
): Promise<boolean>
Belirtilen ada sahip alarmı temizler.
Parametreler
- 
    addize isteğe bağlı Temizlenecek alarmın adı. Varsayılan olarak boş dize kullanılır. 
- 
    callbackişlev isteğe bağlı callbackparametresi şu şekilde görünür:(wasCleared: boolean) => void - 
    wasClearedboolean 
 
- 
    
İadeler
- 
            Promise<boolean> Chrome 91 veya daha yeni bir sürümPromises yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformlarda geri çağırmalar kullanılmalıdır. 
clearAll()
chrome.alarms.clearAll(
callback?: function,
): Promise<boolean>
Tüm alarmları temizler.
Parametreler
- 
    callbackişlev isteğe bağlı callbackparametresi şu şekilde görünür:(wasCleared: boolean) => void - 
    wasClearedboolean 
 
- 
    
İadeler
- 
            Promise<boolean> Chrome 91 veya daha yeni bir sürümPromises yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformlarda geri çağırmalar kullanılmalıdır. 
create()
chrome.alarms.create(
name?: string,
alarmInfo: AlarmCreateInfo,
callback?: function,
): Promise<void>
Alarm oluşturur. alarmInfo tarafından belirtilen saatlerde onAlarm etkinliği tetiklenir. Aynı ada sahip başka bir alarm varsa (veya ad belirtilmemişse adsız bir alarm varsa) bu alarm iptal edilir ve yerine bu alarm ayarlanır.
Chrome, kullanıcının makinesindeki yükü azaltmak için alarmları en fazla 30 saniyede bir kez olacak şekilde sınırlar ancak alarmları rastgele bir süre daha geciktirebilir. Yani delayInMinutes veya periodInMinutes değerinin 0.5 değerinden daha düşük ayarlanması kabul edilmez ve uyarıya neden olur. when, uyarı verilmeden "şimdi"den 30 saniye sonrasına ayarlanabilir ancak alarmın tetiklenmesi için en az 30 saniye geçmesi gerekir.
Uygulamanızda veya uzantınızda hata ayıklamanıza yardımcı olmak için, paketi açılmamış olarak yüklediğinizde alarmın ne sıklıkta tetiklenebileceği konusunda bir sınır yoktur.
Parametreler
- 
    addize isteğe bağlı Bu alarmı tanımlamak için isteğe bağlı ad. Varsayılan olarak boş dize kullanılır. 
- 
    alarmInfoAlarmın ne zaman çalması gerektiğini açıklar. Başlangıç zamanı whenveyadelayInMinutesile belirtilmelidir (ikisi birden değil).periodInMinutesayarlanırsa alarm, ilk etkinlikten sonra herperiodInMinutesdakikada bir tekrarlanır. Tekrarlayan bir alarm içinwhenveyadelayInMinutesayarlanmamışsadelayInMinutesiçin varsayılan olarakperiodInMinuteskullanılır.
- 
    callbackişlev isteğe bağlı Chrome 111 veya daha yeni bir sürümcallbackparametresi şu şekilde görünür:() => void 
İadeler
- 
            Promise<void> Chrome 111 veya daha yeni bir sürümPromises yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformlarda geri çağırmalar kullanılmalıdır. 
get()
chrome.alarms.get(
name?: string,
callback?: function,
): Promise<Alarm | undefined>
Belirtilen alarm hakkında ayrıntıları alır.
Parametreler
İadeler
- 
            Promise<Alarm | undefined> Chrome 91 veya daha yeni bir sürümPromises yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformlarda geri çağırmalar kullanılmalıdır. 
getAll()
chrome.alarms.getAll(
callback?: function,
): Promise<Alarm[]>
Tüm alarmların dizisini alır.
Parametreler
İadeler
- 
            Promise<Alarm[]> Chrome 91 veya daha yeni bir sürümPromises yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformlarda geri çağırmalar kullanılmalıdır.