关于手机电池的充电状态、剩余电量、是否在充电、充电监听事件以及充电剩余时间等电池状态信息,如何通过js获取到呢?今天就来总结整理一下关于《js如何获取手机电池的状态信息?》的问题。

js如何获取手机电池的状态信息?-QUI-Notes

Api介绍:

js获取电池电量是通过navigator.getBattery()这个api获取的,关于用法,如下:

navigator.getBattery(),返回一个promise对象-BatteryManager,参数包含了:设备是否在充电,电量,以及还需充电时长和剩余时长等信息

  • charging: 是否在充电
  • chargingTime: 充满电还需要的时间(秒)
  • dischargingTime:  电池剩余可用时间(秒)
  • level: 剩余电量,最大电量就是1
  • onchargingchange:  充电状态改变时触发该监听函数
  • onchargingtimechange:  充满还需时间改变时触发该监听函数
  • ondischargingtimechange:  电池剩余可用时间改变时触发该监听函数
  • onlevelchange:  电量改变时触发该监听函数 

API用法

navigator.getBattery().then(function(battery) {
  console.log(battery)
});

js如何获取手机电池的状态信息?-QUI-Notes

实战场景:

if('getBattery' in navigator){
   navigator.getBattery().then(function(battery) {
    //判断是否在充电 
    if(battery.charging){ 
		//充电中
    }else{ 
    	//未充电
    }

    // 判断剩余电量
    if(battery.level>=1){ 
    	//100%
	}else if(battery.level>=0.5){
	    //大于50%   
	}else{
	    //低于50%
	}

    // 充电电池监听事件 
    battery.addEventListener('chargingchange', function(){
      alert("充电状态改变:"+ (battery.charging ? "开始充电" : "不充了"));
    });

}else{
     alert('您的浏览器不支持电池状态API');
}