We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

廃止
この機能は廃止されました。まだいくつかのブラウザーで動作するかもしれませんが、いつ削除されてもおかしくないので、使わないようにしましょう。

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

Battery Status API は window.navigator を、battery promise を返す navigator.getBattery() メソッドで拡張します。Promise は、バッテリーの状態監視を制御できる新たなイベントも提供する、BatteryManager オブジェクトで解決します。

以下の例では、充電状況 (電源に接続して充電中であるか) の変化およびバッテリーレベルの変化およびタイミングを監視します。これは、それぞれ chargingchange イベント、 levelchange イベント、chargingtimechangeイベント、dischargingtimechange イベントのリッスンによって実行します。

navigator.getBattery().then(function(battery) {

  console.log("Battery charging? " + (battery.charging ? "Yes" : "No"));
  console.log("Battery level: " + battery.level * 100 + "%");
  console.log("Battery charging time: " + battery.chargingTime + " seconds");
  console.log("Battery discharging time: " + battery.dischargingTime + " seconds");

  battery.addEventListener('chargingchange', function() {
    console.log("Battery charging? " + (battery.charging ? "Yes" : "No"));
  });

  battery.addEventListener('levelchange', function() {
    console.log("Battery level: " + battery.level * 100 + "%");
  });

  battery.addEventListener('chargingtimechange', function() {
    console.log("Battery charging time: " + battery.chargingTime + " seconds");
  });

  battery.addEventListener('dischargingtimechange', function() {
    console.log("Battery discharging time: " + battery.dischargingTime + " seconds");
  });

});

仕様書に記載されているサンプルもご覧ください。

仕様

仕様書 策定状況 コメント
Battery Status API 勧告候補 最初の定義

ブラウザ実装状況

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari
基本サポート 39.0

10 (10) moz
16 (16)[1]
43 (43)[3]
52 (52)[4]

未サポート 25 未サポート
機能 Android Android Webview Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile Android 版 Chrome
基本サポート 未サポート 40.0

10.0 (10) moz
16.0 (16)[1]
43.0 (43)[3]
52.0 (52)[4]

未サポート 25[2] 未サポート 42.0[2]

[1] Firefox 10.0 ではデフォルトで無効ですが、設定項目 dom.battery.enabledtrue に設定して有効化できます。Firefox 11.0 より、mozBattery がデフォルトで有効になりました。Battery API は現在 Android、Windows、UPower をインストールした Linux でサポートしています。Gecko 18.0 (Firefox 18.0 / Thunderbird 18.0 / SeaMonkey 2.15) より、Mac OS をサポートしました。Firefox は、非推奨である navigator.battery もサポートしています。

[2] BatteryManager.chargingTime および BatteryManager.dischargingTime の値は、常に Infinity です。

[3] Navigator.getBattery() の新しい promise ベースの構文は、Firefox 43 からサポートしています。

[4] Firefox 52 以降では、 Battery Status API は chrome/特権コード 以外からは利用できません。

関連情報

ドキュメントのタグと貢献者

このページの貢献者: minoki, yyss
最終更新者: minoki,