このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

バッテリー状態 API

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

バッテリー状態 API は、 バッテリー API と呼ばれることの方が多いのですが、システムのバッテリー充電レベルに関する情報の提供、およびバッテリーレベルや充電状態が変化したときに発生するイベントによる通知を可能にします。これは、バッテリーが消耗したときにバッテリー消費を減らすためアプリのリソース使用状況を調整したり、データを失わないためにバッテリーが切れる前に変更点を保存したりするために使用できます。

メモ: この API はウェブワーカー では利用できません(WorkerNavigator には公開されていません)。

インターフェイス

BatteryManager

システムのバッテリー充電レベルに関する情報を提供します。

Promise を返します。これは BatteryManager オブジェクトで解決します。

以下の例では、充電状況(電源に接続して充電中であるか)の変化およびバッテリーレベルの変化およびタイミングを監視します。これは、 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

api.Navigator.getBattery

関連情報