2013-07-18 14 views
5

manifest.jsonJak korzystać chrome.alarms rozszerzenia Google Chrome

{ 
    "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" 
    } 
} 

ja próbuje utworzyć funkcję, aby okienko "wielki" co minutę tak:

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

Czy ktoś mógłby powiedzieć, dlaczego nie uruchamia tego alertu? Sprawdzam konsolę, nie wyświetlał się żaden błąd. Dzięki.

Odpowiedz

3

Nie utworzono żadnego alarmu, więc żadne zdarzenie onAlarm nie zostanie wywołane.

Utwórz alarm za pomocą chrome.alarms.create. Uwaga: powinieneś to zrobić w wydarzeniu chrome.runtime.onInstalled.

+1

Zobacz także próbki na stronie, którą 方 觉 zacytowałeś. – sowbug

+1

Cytowanie dokumentacji na stronach zdarzeń: 'Ponieważ sami nasi słuchacze istnieją tylko w kontekście strony zdarzenia, należy użyć metody addListener za każdym razem, gdy strona zdarzenia jest ładowana; robienie tego tylko podczas runtime.onInstalowanie samo w sobie jest niewystarczające. " –

+0

Jak mogę sprawdzić, który alarm został uruchomiony w moim słuchaczu' onAlarm '? – theonlygusti

13

Oto najprostszy przykład pracy, jaki mogę sobie wyobrazić, ostrzegając, że jest bardzo denerwujący, ponieważ gdy alarm jest włączony, wysyła sygnał dźwiękowy co 12 sekund. Używa wyskakującej przeglądarki, aby włączyć i wyłączyć alarm.

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(); 
}); 

I ważne bitowe w eventPage.js

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

Jak mogę sprawdzić, który alarm został uruchomiony w moim słuchaczu 'onAlarm '? – theonlygusti

+0

Sprawdź właściwość nazwy alarmu - https://developer.chrome.com/apps/alarms#type-Alarm –

Powiązane problemy