5

manifest.jsonCome utilizzare chrome.alarms per Google Chrome estensione

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

ho cercando di creare una funzione per fare un pop-up "grande" ogni minuto in questo modo:

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

Qualcuno potrebbe dirmi perché non sta facendo scattare quell'allarme. Controllo la console, nessun errore è stato visualizzato. Grazie.

risposta

3

Non è stato creato alcun allarme, quindi non verrà generato alcun evento onAlarm.

Creare un allarme con chrome.alarms.create. Nota: dovresti farlo nell'evento chrome.runtime.onInstalled.

+1

Vedi anche i campioni sulla pagina che 方 觉 citato. – sowbug

+1

Citare la documentazione nelle pagine degli eventi: 'Poiché gli ascoltatori stessi esistono solo nel contesto della pagina dell'evento, è necessario utilizzare addListener ogni volta che viene caricata la pagina dell'evento; solo in questo caso su runtime.onInstallato da solo non è sufficiente. –

+0

Come posso verificare quale allarme è stato attivato nel listener 'onAlarm '? – theonlygusti

13

Ecco l'esempio di lavoro più semplice a cui riesco a pensare, avvertendo che è molto fastidioso come quando l'allarme è attivo avvisa "Beep" ogni 12 secondi. Usa un'azione browser popup per attivare e disattivare l'allarme.

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

e il bit importante eventPage.js

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

Come posso verificare quale allarme è stato attivato nel listener 'onAlarm '? – theonlygusti

+0

Controlla la proprietà del nome dell'allarme - https://developer.chrome.com/apps/alarms#type-Alarm –