Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Gestire la batteria, gli eventi

Link copiato negli appunti

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.

Ti consigliamo anche