Code

Browser Web APIs

CDEFGHIJKLMNOPQRSTUVWXYZ

Battery Status API

Provides information about the battery charge level of the host device and fires events when the level or charging state changes. Useful for adapting app behaviour — such as reducing network activity or disabling resource-intensive features — when battery is low.

MDN Reference

Key Interface — BatteryManager
  • navigator.getBattery() — Returns a Promise<BatteryManager>.
  • BatteryManager.chargingtrue if the battery is currently charging.
  • BatteryManager.level — Battery level as a value between 0.0 and 1.0.
  • BatteryManager.chargingTime — Seconds until fully charged, or 0 if already full.
  • BatteryManager.dischargingTime — Seconds until battery is empty, or Infinity if charging.
Battery Events
EventFires when
chargingchangeThe charging state changes.
levelchangeThe battery level changes.
chargingtimechangeThe estimated charge time changes.
dischargingtimechangeThe estimated discharge time changes.
Example — Read battery status
const battery = await navigator.getBattery();

console.log('Charging:', battery.charging);
console.log('Level:', Math.round(battery.level * 100) + '%');
console.log('Charging time:', battery.chargingTime, 'seconds');
console.log('Discharging time:', battery.dischargingTime, 'seconds');
Example — Adapt behaviour on low battery

Listen for level changes and reduce polling or disable animations when the battery drops below a threshold.

const battery = await navigator.getBattery();

function checkBattery() {
  if (!battery.charging && battery.level < 0.2) {
    console.warn('Low battery — entering power-save mode');
    reduceSyncFrequency();
    pauseBackgroundAnimations();
  }
}

battery.addEventListener('levelchange', checkBattery);
battery.addEventListener('chargingchange', checkBattery);

checkBattery(); // run immediately on load