バッテリー状態 API
バッテリー状態 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
BCD tables only load in the browser
api.Navigator.getBattery
BCD tables only load in the browser