Chrome瀏覽器擴充套件開發系列之九:Chrome瀏覽器的chrome.alarms.* API

Chrome擴充套件開發極客發表於2015-09-23

Chrome瀏覽器擴充套件程式通過chrome.alarms.* API,可以制定計劃週期性地執行程式碼,或在指定時間執行程式碼。

要使用chrome.alarms.* API,首先需要在manifest.json檔案中宣告alarms授權如下:

{

"permissions": [

"alarms"

],

}

chrome.alarms.Alarm物件的屬性如下:

屬性名

型別

必選/可選

註釋

name

string

必選

alarm的名字

scheduledTime

double

必選

觸發alarm的時間,單位ms

periodInMinutes

double

可選

非null表示alarm週期性執行的時間間隔,單位minute

chrome.alarms API中的常用方法:

· 建立一個alarm

chrome.alarms.create(string name, object alarmInfo)

這是一個同步方法,name屬性可選,為空時表示””。alarmInfo物件的屬性如下:

屬性名

型別

必選/可選

註釋

when

double

可選

觸發alarm的時間,單位ms

delayInMinutes

double

可選

onAlarm事件發出的延遲時間,單位minute

periodInMinutes

double

可選

非null表示alarm週期性執行的時間間隔,單位minute

在alarmInfo指定的時間建立一個新的alarm,同時發出onAlarm事件。如果已經有重名的alarm則替換已有的alarm。

為了降低建立alarm對執行效率的影響,Chrome瀏覽器限制一分鐘內最多隻能有一個alarm,任何可能突破該限制的alarm都將被推遲任意時間。當然除錯過程中沒有該限制。

· 獲取指定名字的alarm

chrome.alarms.get(string name, function(Alarm alarm) {...})

· 獲取所有alarm

chrome.alarms.getAll(function(array of Alarm alarms) {...})

· 通過名字刪除alarm

chrome.alarms.clear(string name, function(boolean wasCleared) {...})

· 清除所有alarm

chrome.alarms.clearAll(function(boolean wasCleared) {...})

· 監聽alarm發生的事件,用於event page

chrome.alarms.onAlarm.addListener(function(Alarm alarm) {...})

回撥函式中的alarm就是觸發事件的alarm物件。

相關文章