浏览器可以访问设备电池及充电状态的信息。navigator.getBattery()方法会返回一个期约实
例,解决为一个BatteryManager 对象。
navigator.getBattery().then((b) => console.log(b));
// BatteryManager { … }
BatteryManager 包含4 个只读属性,提供了设备电池的相关信息。
charging:布尔值,表示设备当前是否正接入电源充电。如果设备没有电池,则返回true。
chargingTime:整数,表示预计离电池充满还有多少秒。如果电池已充满或设备没有电池,则
返回0。
dischargingTime:整数,表示预计离电量耗尽还有多少秒。如果设备没有电池,则返回Infinity。
level:浮点数,表示电量百分比。电量完全耗尽返回0.0,电池充满返回1.0。如果设备没有电
池,则返回1.0。
这个API 还提供了4 个事件属性,可用于设置在相应的电池事件发生时调用的回调函数。可以通过
给BatteryManager 添加事件监听器,也可以通过给事件属性赋值来使用这些属性。
onchargingchange
onchargingtimechange
ondischargingtimechange
onlevelchange
navigator.getBattery().then((battery) => {
// 添加充电状态变化时的处理程序
const chargingChangeHandler = () => console.log(‘chargingchange’);
battery.onchargingchange = chargingChangeHandler;
// 或
battery.addEventListener(‘chargingchange’, chargingChangeHandler);
// 添加充电时间变化时的处理程序
const chargingTimeChangeHandler = () => console.log(‘chargingtimechange’);
battery.onchargingtimechange = chargingTimeChangeHandler;
// 或
battery.addEventListener(‘chargingtimechange’, chargingTimeChangeHandler);
// 添加放电时间变化时的处理程序
const dischargingTimeChangeHandler = () => console.log(‘dischargingtimechange’);
battery.ondischargingtimechange = dischargingTimeChangeHandler;
// 或
battery.addEventListener(‘dischargingtimechange’, dischargingTimeChangeHandler);
// 添加电量百分比变化时的处理程序
const levelChangeHandler = () => console.log(‘levelchange’);
battery.onlevelchange = levelChangeHandler;
// 或
battery.addEventListener(‘levelchange’, levelChangeHandler);
});
javascript基础从小白到高手系列一百零五:Battery Status API
本文介绍了浏览器如何通过navigator.getBattery()方法获取设备电池状态,包括充电状态、充电/放电时间以及电量百分比。同时详细解释了如何使用BatteryManager对象的事件属性来监控电池状态变化。
摘要由CSDN通过智能技术生成