Navigator.getBattery()

The getBattery() method provides information about the system's battery. It returns a battery promise, which is resolved in a BatteryManager object providing also some new events you can handle to monitor the battery status. This implements the Battery Status API; see that documentation for additional details, a guide to using the API, and sample code.

Note: In some browsers access to this feature is controlled by Feature-Policy directive battery.

Syntax

var batteryPromise = navigator.getBattery();

Return value

A Promise which, when resolved, calls its fulfillment handler with a single parameter: a BatteryManager object which you can use to get information about the battery's state.

Exceptions

This method doesn't throw true exceptions; instead, it rejects the returned promise, passing into it a DOMException whose name is one of the following:

SecurityError

The User Agent does not expose battery information to insecure contexts and this method was called from insecure context. Note: Old versions of some User Agents might allow use of this feature in insecure contexts.

NotAllowedError

Note: No User Agent currently throws this exception, but the specification describes the following behaviors: This document is not allowed to use this feature. For example, it might not be explicitly allowed or restricted via Feature-Policy battery feature.

Example

This example fetches the current charging state of the battery and establishes a handler for the chargingchange event, so that the charging state is recorded whenever it changes.

let batteryIsCharging = false;

navigator.getBattery().then(function(battery) {
  batteryIsCharging = battery.charging;

  battery.addEventListener('chargingchange', function() {
    batteryIsCharging = battery.charging;
  });
});

For more examples and details, see Battery Status API.

Specifications

Specification
Battery Status API
# dom-navigator-getbattery

Browser compatibility

BCD tables only load in the browser

See also