Battery Status API

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Battery API 만큼이나 자주 언급되는 Battery Status API는 시스템의 배터리 충전 상태에 대한 정보를 제공하고, 배터리 상태에 따라 발생하는 이벤트를 다룰 수 있도록 해 줍니다. 배터리가 얼마남지 않은 상황에서, 앱에서 배터리의 소모를 줄인다거나 배터리가 방전되기 전에 데이터를 저장하거나 하는 것들이 가능합니다.

참고: 이 API는 Web Workers 에서 사용이 불가능합니다. (WorkerNavigator 에 포함되어 있지 않음)

인터페이스

BatteryManager

시스템의 배터리 충전 상태에 대한 정보를 제공합니다.

다른 인터페이스로의 확장

BatteryManager 객체를 이행하는 Promise를 리턴합니다.

예제

이 예제에서는 배터리가 충전중인 상태(전원 케이블을 연결하여 충전 중인지)와 배터리 잔량 및 타이밍의 변화를 모두 관찰합니다. 이 작업은 chargingchange, levelchange, chargingtimechange, dischargingtimechange 이벤트를 수신하는 방식으로 수행됩니다.

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

  battery.addEventListener("chargingchange", () => {
    updateChargeInfo();
  });
  function updateChargeInfo() {
    console.log(`Battery charging? ${battery.charging ? "Yes" : "No"}`);
  }

  battery.addEventListener("levelchange", () => {
    updateLevelInfo();
  });
  function updateLevelInfo() {
    console.log(`Battery level: ${battery.level * 100}%`);
  }

  battery.addEventListener("chargingtimechange", () => {
    updateChargingInfo();
  });
  function updateChargingInfo() {
    console.log(`Battery charging time: ${battery.chargingTime} seconds`);
  }

  battery.addEventListener("dischargingtimechange", () => {
    updateDischargingInfo();
  });
  function updateDischargingInfo() {
    console.log(`Battery discharging time: ${battery.dischargingTime} seconds`);
  }
});

명세서의 예시도 참조하세요.

명세서

Specification
Battery Status API

브라우저 호환성

api.BatteryManager

BCD tables only load in the browser

api.Navigator.getBattery

BCD tables only load in the browser

같이 보기