API de Battery Status

Contexto seguro: Esta función está disponible solo en contextos seguros (HTTPS), en algunos o todos los navegadores que lo soportan.

La API de Battery Status, más comúnmente referida como la API de la batería, proporciona información sobre el estado de carga de la batería del sistema y te permite ser notificado por eventos que se envían cuando el nivel de la batería o su estado de carga cambia. Esto se puede usar para ajustar el uso de recursos de tu aplicación para reducir el drenaje de batería cuando es baja, o para guardar los cambios antes de que se acabe la batería para prevenir pérdida de datos.

Nota: Esta API no está disponible en los Web Workers (no se expone a través de WorkerNavigator).

Interfaces

BatteryManager

Proporciona información sobre el nivel de carga de la batería del sistema.

Extensiones a otras interfaces

Devuelve una Promise que se resuelve con un objeto BatteryManager.

Ejemplo

En este ejemplo, observamos los cambios en el estado de carga (esté o no enchufado y cargando) y en el nivel y la sincronización de la batería. Esto se hace escuchando por los eventos chargingchange, levelchange, chargingtimechange y dischargingtimechange.

js
navigator.getBattery().then((battery) => {
  function updateAllBatteryInfo() {
    updateChargeInfo();
    updateLevelInfo();
    updateChargingInfo();
    updateDischargingInfo();
  }
  updateAllBatteryInfo();

  battery.addEventListener("chargingchange", () => {
    updateChargeInfo();
  });
  function updateChargeInfo() {
    console.log(`¿Cargándose la batería? ${battery.charging ? "Sí" : "No"}`);
  }

  battery.addEventListener("levelchange", () => {
    updateLevelInfo();
  });
  function updateLevelInfo() {
    console.log(`Nivel de la batería: ${battery.level * 100} %`);
  }

  battery.addEventListener("chargingtimechange", () => {
    updateChargingInfo();
  });
  function updateChargingInfo() {
    console.log(
      `Tiempo de carga de la batería: ${battery.chargingTime} segundos`,
    );
  }

  battery.addEventListener("dischargingtimechange", () => {
    updateDischargingInfo();
  });
  function updateDischargingInfo() {
    console.log(
      `Tiempo de descarga de la batería: ${battery.dischargingTime} segundos`,
    );
  }
});

Consulta también el ejemplo en la especificación.

Especificaciones

Specification
Battery Status API

Compatibilidad con navegadores

api.BatteryManager

api.Navigator.getBattery

Véase también