2013-07-18 65 views
5

manifest.json的如何使用chrome.alarms谷歌瀏覽器擴展

{ 
    "manifest_version": 2, 
    "name": "App name", 
    "description": "Description goes here", 
    "version": "1.0",  
    "background": { 
     "scripts": ["background.js"] 
    }, 
    "permissions": [ 
     "tabs", 
     "alarms" 
    ], 
    "browser_action": { 
     "default_icon": "icon.png", 
     "default_popup": "popup.html" 
    } 
} 

我試圖建立一個功能,使彈出一個「偉大」的每一分鐘是這樣的:

chrome.alarms.onAlarm.addListener(function(){ 
     alert('great'); 
    }); 

有人可以告訴爲什麼它不觸發該警報。我檢查控制檯,沒有顯示錯誤。謝謝。

回答

3

你沒有創建任何報警,所以沒有onAlarm事件將被解僱。

chrome.alarms.create創建報警。注意:您應該在chrome.runtime.onInstalled事件中執行此操作。

+1

另請參閱方覺引用的頁面上的示例。 – sowbug

+1

報價在活動頁面的文檔:'因爲聽衆自己只在活動頁面的上下文中存在,則必須使用addListener每次活動頁面加載;只有這樣做,在本身runtime.onInstalled是insufficient.' –

+0

我怎麼能檢查哪些報警是在我的'onAlarm」監聽解僱? – theonlygusti

13

這是最簡單的工作的例子,我能想到的,並警告這是因爲,當報警後它會提醒「聲音」每12秒很煩人。它使用彈出式瀏覽器操作來打開和關閉鬧鐘。

的manifest.json

{ 
    "manifest_version": 2, 

    "name": "Alarm test", 
    "description": "This extension alarms.", 
    "version": "1.0", 

    "permissions": [ 
    "alarms" 
    ], 

    "background": { 
    "scripts": ["eventPage.js"], 
    "persistent": false 
    }, 

    "browser_action": { 
    "default_icon": "icon.png", 
    "default_popup": "popup.html" 
    } 
} 

popup.html

<!doctype html> 
<html> 
<head> 
<title>Alarms Popup</title> 

<script src="popup.js"></script> 
</head> 
<body> 
<a href="" id="alarmOn">ON</a> 
<a href="" id="alarmOff">OFF</a> 
</ul> 
</body> 
</html> 

popup.js

var alarmClock = { 

     onHandler : function(e) { 
      chrome.alarms.create("myAlarm", {delayInMinutes: 0.1, periodInMinutes: 0.2}); 
        window.close(); 
     }, 

     offHandler : function(e) { 
      chrome.alarms.clear("myAlarm"); 
        window.close(); 
     }, 

     setup: function() { 
      var a = document.getElementById('alarmOn'); 
      a.addEventListener('click', alarmClock.onHandler); 
      var a = document.getElementById('alarmOff'); 
      a.addEventListener('click', alarmClock.offHandler); 
     } 
}; 

document.addEventListener('DOMContentLoaded', function() { 
    alarmClock.setup(); 
}); 

而且在eventPage.js最重要的一點

chrome.alarms.onAlarm.addListener(function(alarm) { 
    alert("Beep"); 
}); 
+0

我怎麼能檢查哪些報警是在我的'onAlarm」監聽解僱? – theonlygusti

+0

檢查鬧鐘的名稱屬性 - https://developer.chrome.com/apps/alarms#type-Alarm –