getBattery API用法详解

本文介绍getBattery API的使用方法及注意事项。getBattery API是获取电源管理信息的API。

本文内容可以在https://www.lyz810.com/demo/battery/中查看相关Demo。
一、概述
navigator.getBattery是一个用于获取电源管理信息的API。它可以获取电源的连接状态、电池电量水平、剩余放电时间、剩余充电时间等于电源管理相关的参数。

二、兼容性
navigator.getBattery基本只能在Chrome及Firefox浏览器上使用,其他浏览器基本上都没戏。
Firefox:43+
Chrome:38+
Opera:25+

三、基本用法

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

navigator.getBattery返回一个Promise对象,通过then的第一个function,可以获取到电池状态信息。
其中batteryInfo对象如下:
batteryInfo.charging:电源状态,true表示电源接通(但是否充电不一定),false表示电源没有接通。
batteryInfo.chargingTime:充电时长,目前测试没有发现此数值除Infinity外还有其他值,可能与系统等因素有关。
batteryInfo.dischargingTime:剩余时长,在不接电源时此属性会有一个非Infinity的值,表示电池剩余时间的秒数。
batteryInfo.level:电池电量水平,范围0~1表示0%~100%。
batteryInfo.onchargingchange:当切换电源状态时触发,如插入电源和拔出电源。
batteryInfo.onchargingtimechange:目前未发现会触发事件,因为chargingTime总是Infinity。
batteryInfo.ondischargingtimechange:电池剩余时间改变时触发该事件。
batteryInfo.onlevelchange:在电池电量水平改变时触发。

四、注意事项
Firefox中电量水平的精度为0.1,会对电量进行四舍五入,如电量为95%时,Firefox电量显示为100%(1),当电量为94%时,Firefox电量显示为90%(0.9)
Chrome中电量水平的精度为0.01,能够精确的获取1%的电量差距
电池剩余时间估算可能与系统的电池剩余时间不同