Un'altra categoria di eventi che possiamo gestire è quella relativa al livello di carica della batteria. Gestire opportunamente questi eventi ci consente di creare applicazioni robuste e comunque di dare un tocco di professionalità.
Batterylow
Ad esempio, quando il livello di carica della batteria è basso possiamo invitare l'utente a salvare la scheda che sta compilando ed a collegare il dispositivo ad una presa di alimentazione. A questo scopo possiamo sfruttare l'evento batterylow:
deviceready: function() {
// ...
document.addEventListener("batterylow", app.onBatteryLow, false);
// ...
}
onBatteryLow: function(info) {
if (!info.isPlugged) {
var msgBatteryLow = "La carica della batteria si sta esaurendo. Salva la scheda corrente e collega il dispositivo ad un caricabatterie.";
navigator.notification.alert(msgBatteryLow, function(){}, "Attenzione!");
}
}
Al gestore dell'evento viene passato un oggetto con due proprietà:
Proprietà | Descrizione |
---|---|
level |
valore numerico compreso tra 0 e 100 che indica il livello di carica corrente. |
isPlugged |
valore booleano che indica se al momento il dispositivo è collegato alla rete elettrica o meno. |
Nel nostro esempio, prima di invitare l'utente a salvare i dati abbiamo verificato che il dispositivo non fosse collegato ad una presa di alimentazione.
Batterycritical
Un altro evento relativo allo stato della batteria ci consente di intercettare quando il livello di carica è talmente basso da essere considerato critico. Quando si verifica l'evento batterycritical il dispositivo si potrebbe spegnere da un momento all'altro.
In questo caso è opportuno prendere le misure opportune per consumare meno energia possibile e per salvaguardare il lavoro dell'utente.
Nel nostro caso, ad esempio, potremmo disabilitare l'invio delle schede, dal momento che la connessione Internet è dispendiosa, e salvare l'eventuale scheda attiva:
deviceready: function() {
// ...
document.addEventListener("batterycritical", app.onBatteryCritical, false);
// ...
}
onBatteryCritical: function(info) {
if (!info.isPlugged) {
$("#btnInviaSchede").addClass("ui-disabled");
if($.mobile.activePage.attr("id") == "scheda"){
$("#btnNuovaScheda").trigger("tap");
}
}
}
Batterystatus
Per tutte le altre esigenze di gestione della batteria è disponibile l'evento batterystatus che si verifica tutte le volte che viene registrata una variazione di carica di almeno un punto percentuale.
Così, ad esempio, se volessimo visualizzare il livello di carica attuale potremmo procedere nel seguente modo:
deviceready: function() {
// ...
document.addEventListener("batterystatus", app.onBatteryStatus, false);
// ...
}
onBatteryStatus: function(info) {
var inCarica = "";
if (info.isPlugged) inCarica = "+";
$("#batteryInfo").html("Carica residua: " + info.level + "% " + inCarica);
}
In questo modo visualizzeremo costantemente all'interno di un elemento HTML dedicato la percentuale di carica residua e il segno +
se il dispositivo è sotto carica.