DesarrolloLibre

Desarrollo Web, Android, juegos y mucho más

Categorias
17-11-2014

Una de las muchas APIs para JavaScript que permiten trabajar con los componentes de los dispositivos móviles, es la API de la batería, que se encuentra accesible a través del objeto navigator.battery; esta API provee información sobre el nivel de carga actual del dispositivo móvil; además provee una serie de eventos que se ejecutan cuando el dispositivo móvil pasa de un estado a otro, por ejemplo:

Entre otros estados; aunque se pueda llegar a pensar que esta API no tiene mucha utilidad al momento de la creación de una aplicación web para dispositivos en comparación con otras como:

Es importante mencionar que puede tener una utilidad según el propósito que se desee de la aplicación; por ejemplo una aplicación web que oscurezca ciertos elementos de la interfaz con tal de ajustar los colores cuando la batería es escasa con el objetivo de apagar pixeles en la pantalla y de esta forma ahorrar la batería.

Atributos del objeto navigator.battery

Las siguientes propiedades están provistas por el objeto navigator.battery:

charging Booleano que indica si el dispositivo móvil está en fase de cargo (true) o no (false).
chargingTime
Representa el tiempo restante en segundos hasta que la batería del dispositivo móvil está totalmente cargada; el atributo chargingTime debe estar cercano a 0, si la batería está llena o no hay batería conectada, y al infinito positivo si la batería se descarga o la aplicación no puede informar el tiempo de carga restante.
dischargingTime
Representa el tiempo restante en segundos hasta que la batería del dispositivo móvil está totalmente descargada; el atributo dischargingTime toma el valor de infinito positivo si:
  • La batería se está cargando.
  • La aplicación no puede informar el tiempo de descarga restante (tiempo hasta que se agote la batería).
  • No hay ninguna batería conectada al sistema.
level
A través de una escala de 0.0 a 1.0, el atributo establece que:
  • El atributo está establecido en 0 si la batería se a agotado.
  • El atributo está establecido en 1.0 si la batería está al tope de su capacidad (100%).

Eventos del objeto navigator.battery

Es posible definir una serie de eventos:

onchargingchange Para la propiedad charging.
onchargingTimechange Para la propiedad chargingTime.
ondischargingTimechange Para la propiedad dischargingTime.
onlevelchange Para la propiedad level.

Podemos ver el resumen de todas las propiedades y eventos en la siguiente sección:

// Obtenemos el objeto battery segun el navegador
var battery = navigator.battery || navigator.webkitBattery || navigator.mozBattery;

// propiedades
battery.charging;
battery.level;
battery.dischargingTime;

// eventos
battery.addEventListener("chargingchange", function(e) {}, false);
battery.addEventListener("chargingtimechange", function(e) {}, false);
battery.addEventListener("dischargingtimechange", function(e) {}, false);
battery.addEventListener("levelchange", function(e) {}, false);

¡Importante! lamentablemente, parece ser que Firefox es el único navegador que permite utilizar esta característica por los momentos: ver compatibilidad en los navegadores.

Enlace para la documentación oficial Battery Status API - W3C.


Publicidad

Give me for a beer!

Algunos recursos que te pueden interesar

Calendario de cubo

Calendario de cubo

Esfera de agrupación

Esfera de agrupación

Unión de galaxias con JavaScript

Unión de galaxias con JavaScript

Algunos artículos que te pueden interesar

Obteniendo una captura de pantalla del portapapeles (clipboard) con JavaScript

Obteniendo una captura de pantalla del portapapeles (clipboard) con JavaScript

En esta entrada veremos como copiar una imagen producto de una captura de pantalla que se encuentre guardada de manera temporal en el portapapeles o clipboard en un elemento img.

Andrés Cruz 29-01-2015

Introducción a la API de Orientación de Pantalla en JavaScript

Introducción a la API de Orientación de Pantalla en JavaScript

La API de Orientación de Pantalla en JavaScript accesible a través del objeto Screen proporciona primitivas que permiten detectar la posición de la pantalla de un dispositivo, bloquear y desbloquear posiciones específicas.

Andrés Cruz 19-03-2015

Primeros pasos con las Cookies en JavaScript

Primeros pasos con las Cookies en JavaScript

JavaScript cuenta con varias tecnologías persistentes (que la información que deseemos almacenar se mantenga aun cuando el usuario cierre o refresque la ventana de su navegador) como SQLite y las Cookies que trataremos en esta entrada.

Andrés Cruz 17-12-2015