Navigator.getBattery()

getBattery() メソッドは、システムのバッテリーに関する情報を提供します。これは BatteryManager (en-US) オブジェクトで解決されるバッテリーのプロミスを返し、バッテリーの状態を監視するために処理できるいくつかの新しいイベントを提供します。これはバッテリー状態 API を実装しています。詳細、API の使用ガイド、サンプルコードについては、そのドキュメントを参照してください。

メモ: ブラウザーによっては、この機能へのアクセスは Feature-Policybattery ディレクティブで制御されます。

構文

js
getBattery()

引数

なし。

返値

解決されると、バッテリーの状態に関する情報を取得するために使用できる BatteryManager (en-US) オブジェクトを単一の引数として持つ履行ハンドラーを呼び出す Promise です。

例外

このメソッドは真の例外を発生させません。代わりに、返されたプロミスが拒否され、 DOMException の中に name を次のうちの一つに設定します。

SecurityError

ユーザーエージェントは安全でないコンテキストではバッテリー情報を公開しませんが、このメソッドが安全でないコンテキストから呼び出されました。

メモ: 一部のユーザーエージェントの古いバージョンでは、安全でないコンテキストでこの機能の利用を許可していることがあります。

NotAllowedError

現在この例外を発生させるユーザーエージェントはありませんが、仕様書では以下のような動作が記述されています。

この文書ではこの機能の使用が許可されていません。 例えば、 Feature-Policy battery 機能を介して明示的に許可されてなかったり、制限されていたりした場合です。

この例では、バッテリーの現在の充電状態を取得し、充電状態が変化するたびに充電状態が記録されるように、 chargingchange (en-US) イベントのハンドラーを確立します。

js
let batteryIsCharging = false;

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

  battery.addEventListener("chargingchange", () => {
    batteryIsCharging = battery.charging;
  });
});

その他の例や詳細については、バッテリー状態 APIを参照してください。

仕様書

Specification
Battery Status API
# dom-navigator-getbattery

ブラウザーの互換性

BCD tables only load in the browser

関連情報