Battery Status API について
■ Battery Status API について
バッテリー関連の情報を、取得する事ができます。
■ブラウザが Battery Status API をサポートしているか調べる
navigator.getBattery が真であるか比較します。
BatteryManager について
BatteryManager オブジェクトを取得する
navigator.getBattery() メソッドを使用します。
navigator.getBattery( ) :Promise
引数 | Void | なし |
戻り値 | Promise | 新しい Promise オブジェクトが得られる。 |
■戻り値(Promise)
結果を受け取るには、then() メソッドを使用します。
非同期で動作します。
■取得例
BatteryManager オブジェクトを取得する
// ------------------------------------------------------------
// BatteryManager オブジェクトを取得する
// ------------------------------------------------------------
// 取得を開始する
var promise = navigator.getBattery();
// 結果を受け取る(非同期)
promise.then(
// ------------------------------------------------------------
// 成功時に実行されるコールバック関数
// ------------------------------------------------------------
function success(battery_manager){
// 出力テスト
console.log(battery_manager);
},
// ------------------------------------------------------------
// 失敗時に実行されるコールバック関数
// ------------------------------------------------------------
function failure(reason){
// 出力テスト
console.log(reason);
}
);
BatteryManager のプロパティについて
■読み取り可能なプロパティ一覧
プロパティ名 | 型 | 説明 |
charging | Boolean | 充電中なら true 、放電中なら false |
chargingTime | Number | バッテリーが満たされるまでに必要な充電時間(単位:秒) 放電中なら +Infinity |
dischargingTime | Number | バッテリーが枯渇するまでの残り放電時間(単位:秒) 充電中なら +Infinity |
level | Number | バッテリーの貯蓄率(0.0 ~ 1.0) |
取得例
バッテリーの情報を取得する
// ------------------------------------------------------------
// BatteryManager オブジェクトを取得する
// ------------------------------------------------------------
// 取得を開始する
var promise = navigator.getBattery();
// 結果を受け取る(非同期)
promise.then(function (battery_manager){
// ------------------------------------------------------------
// 充電中であるか
// ------------------------------------------------------------
console.log( battery_manager.charging );
// ------------------------------------------------------------
// 満充電までに必要な時間(秒)
// ------------------------------------------------------------
console.log( battery_manager.chargingTime );
// ------------------------------------------------------------
// 枯渇するまでの残り時間(秒)
// ------------------------------------------------------------
console.log( battery_manager.dischargingTime );
// ------------------------------------------------------------
// バッテリーの貯蓄率(0.0 ~ 1.0)
// ------------------------------------------------------------
console.log( battery_manager.level );
});
BatteryManager のイベントについて
以下のイベントに対応しています。
イベント名 | 型 | 解説 |
onchargingchange | Event | charging プロパティが変化した |
onchargingtimechange | Event | chargingTime プロパティが変化した |
ondischargingtimechange | Event | dischargingTime プロパティが変化した |
onlevelchange | Event | level プロパティが変化した |
■使用例
BatteryManager のプロパティの変化を監視する(イベントプロパティ)
// ------------------------------------------------------------
// BatteryManager オブジェクトを取得する
// ------------------------------------------------------------
// 取得を開始する
var promise = navigator.getBattery();
// 結果を受け取る(非同期)
promise.then(function (battery_manager){
// ------------------------------------------------------------
// charging プロパティが変化すると実行されるイベント
// ------------------------------------------------------------
battery_manager.onchargingchange = function (e){
console.log( battery_manager.charging );
};
// ------------------------------------------------------------
// chargingTime プロパティが変化すると実行されるイベント
// ------------------------------------------------------------
battery_manager.onchargingtimechange = function (e){
console.log( battery_manager.chargingTime );
};
// ------------------------------------------------------------
// dischargingTime プロパティが変化すると実行されるイベント
// ------------------------------------------------------------
battery_manager.ondischargingtimechange = function (e){
console.log( battery_manager.dischargingTime );
};
// ------------------------------------------------------------
// level プロパティが変化すると実行されるイベント
// ------------------------------------------------------------
battery_manager.onlevelchange = function (e){
console.log( battery_manager.level );
};
});
BatteryManager のプロパティの変化を監視する(イベントリスナー)
// ------------------------------------------------------------
// BatteryManager オブジェクトを取得する
// ------------------------------------------------------------
// 取得を開始する
var promise = navigator.getBattery();
// 結果を受け取る(非同期)
promise.then(function (battery_manager){
// ------------------------------------------------------------
// charging プロパティが変化すると実行されるイベント
// ------------------------------------------------------------
battery_manager.addEventListener( "chargingchange" , function(e){
console.log( battery_manager.charging );
});
// ------------------------------------------------------------
// chargingTime プロパティが変化すると実行されるイベント
// ------------------------------------------------------------
battery_manager.addEventListener( "chargingtimechange" , function(e){
console.log( battery_manager.chargingTime );
});
// ------------------------------------------------------------
// dischargingTime プロパティが変化すると実行されるイベント
// ------------------------------------------------------------
battery_manager.addEventListener( "dischargingtimechange" , function(e){
console.log( battery_manager.dischargingTime );
});
// ------------------------------------------------------------
// level プロパティが変化すると実行されるイベント
// ------------------------------------------------------------
battery_manager.addEventListener( "levelchange" , function(e){
console.log( battery_manager.level );
});
});