2014-05-09 35 views
0

我有一個每天午夜觸發的報警。在我看來,如果用戶已經退出Chrome瀏覽器,報警將不會觸發。一旦啓動chrome(如果鬧鐘在午夜沒有響起),是否有辦法觸發鬧鐘?所以要清楚的是,如果鬧鐘在午夜沒有響起,我只想在啓動時觸發。以下是我有:啓動時發生鉻擴展觸發報警

chrome.alarms.create("alarm_test", {delayInMinutes: startMins, periodInMinutes: 1440}); 
    chrome.alarms.onAlarm.addListener(function(alarm) { 
    //do stuff 
    }); 

回答

2

的邏輯是很明顯的在這裏:你必須記錄(在,比方說,chrome.storage.local)最後一次成功的警報執行的時間戳。

然後,在擴展初始化時,查看時間戳是否超過1天。在這種情況下,警報被漏掉了,你應該執行它應該運行的任何東西。

+0

你怎麼知道擴展初始化的時間?是否有一個事件處理程序? – user1802143

+0

當擴展被初始化時,它的後臺JavaScript被運行,所以無論頂層是什麼都被執行。見#1 [這裏](https://developer.chrome.com/extensions/event_pages#best-practices)。 – Xan

+0

如果在觸發報警時機器處於睡眠模式,該怎麼辦?該分機不會在休眠時再次初始化,但您會錯過鬧鐘。 – cabbagebot