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 | 勧告候補 | 最初の定義 |
ブラウザ実装状況
機能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
基本サポート | 39.0 | 10 (10) moz 16 (16)[1] 43 (43)[3] |
未サポート | 25 | 未サポート |
機能 | Android | Android Webview | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile | Android 版 Chrome |
---|---|---|---|---|---|---|---|
基本サポート | 未サポート | 40.0 | 未サポート | 25[2] | 未サポート | 42.0[2] |
[1] Firefox 10.0 ではデフォルトで無効ですが、設定項目 dom.battery.enabled
を true
に設定して有効化できます。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 からサポートしています。