简介
简单来说,通过Battery Status API可以获取到系统的电量信息,它提供了通过电量、充电的状态的改变提醒用户的事件。比如通过使用这些事件捕捉电池的状态,在设备低电量时调整应用的使用状态,或者在电池用尽之前保存应用中的修改以防止数据的丢失。
基本使用
通过navigator.getBattery方法返回一个promise对象。
navigator.getBattery().then(function(battery){
console.log(battery);
})
返回结果:
属性
属性名 | 释义 |
---|---|
charging | 返回一个Boolean值:true为正在充电;false为未充电 |
chargingTime | 距离充满需要多长时间,单位为秒;当值为infinity表示无法确定充满需要多久或设备正在充电 |
dischargingTime | 放电至设备关机还余多长时间,单位为秒,值为infinity时表示无法确定放电时间或设备正在充电 |
level | 电池电量的等级,取值在[0,1],值乘100,就是设备的当前的电量 |
事件
事件 | 释义 |
---|---|
onchargingchange | 当charging值发生改变时触发(就是插拔设备充电头的时候会触发) |
onchargingtimechange | chargingTime值发生改变时会触发(咱就是说,这个电池不满格的情况下,充电时距离充满电的时间是会变的,就这个时间变化的时候会触发) |
ondischargingtimechange | dischargingTime值发生改变时会触发(情况跟onchargingtimechange一样,放电时间变化的时候会触发) |
onlevelchange | 当level值发生改变时触发(这个是每升一格电或每降一格电就会触发,只要电量变化就会触发) |
当chargingTime、dischargingTime的值为infinity时,不出意外的话,onchargingtimechange、ondischargingtimechange这俩货不会触发。
附一张代码示例图及结果(没充电):
以上,词不达意之处还请见谅,错误之处欢迎指出,就酱。
参考
[1] https://developer.mozilla.org/zh-CN/docs/Web/API/Battery_Status_API
[2] https://blog.csdn.net/weixin_33374585/article/details/117712906