Navigator.battery

已废弃
该特性已经从 Web 标准中删除,虽然一些浏览器目前仍然支持它,但也许会在未来的某个时间停止支持,请尽量不要使用该特性。

电池状态API,通常简称为电池API,该API能够给你提供用户系统的电池电量的相关信息,还能在电池的电量发生变化时通知你.这样你就可以在得知系统电量不足的时候降低你的网站上一些循环执行任务的频率,从而节约电量.或者在电量减少到某个级别的时候,自动保存页面上的一些数据,以防止用户的数据丢失.

电池状态API主要暴露在window.navigatorbattery属性上,另外还有一些新的事件类型.

属性

charging
只读. 一个布尔值,表示了系统电池的充电状态.如果电池正在充电,则返回true,其他情况,比如无法获取系统电池的充电状态,或者系统不使用电池,或者电池不在充电,都返回false.
chargingTime
只读. 一个整字,单位为秒.表示了电池还剩多长时间充满电.如果电池已经充满电了,则返回0.如果电池不在充电,或者无法获取到这个时间值,则返回正无穷大.
dischargingTime
只读.一个数字,单位为秒.表示了电池中的电量还剩多长时间会消耗完毕.如果电池正在充电,或者无法获取到这个时间值,以及如果系统没有电池,则返回正无穷大.
level
只读. 一个数字,单位为秒.表示了系统的电池的电量等级,从0到1.0.如果电量已经完全消耗完,则返回0,如果电量为充满状态,或者无法获取到这个等级值,以及如果系统没有电池,则返回1.0.

事件

chargingchange
charging属性值发生改变时触发该事件.
chargingtimechange
chargingTime属性值发生改变时触发该事件.
dischargingtimechange
dischargingTime属性值发生改变时触发该事件.
levelchange
level属性值发生改变时触发该事件.

示例

查看规范中的这个例子.

var battery = navigator.battery || navigator.mozBattery || navigator.webkitBattery;

function updateBatteryStatus() {
  alert("Battery status: " + battery.level * 100 + " %");

  if (battery.charging) {
    alert("Battery is charging"); 
  }
}

battery.addEventListener("chargingchange", updateBatteryStatus);
battery.addEventListener("levelchange", updateBatteryStatus);
updateBatteryStatus();

规范

Specification Status Comment
Battery Status API Candidate Recommendation Initial specification.

浏览器兼容性

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 38.0 10 (10) moz [1]
16 (16) (without prefix) [2]
未实现 未实现 未实现
Feature Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support ? 10.0 (10) moz [1]
16.0 (16) (without prefix) [2]
未实现 未实现 未实现

Gecko附注

[1] 在Firefox 10.0中默认为禁用状态,不过可以通过将用户首选项中的dom.battery.enabled设置为true启用它.从Firefox 11.0开始,mozBattery默认为启用状态.

[2] Gecko 18.0(Firefox 18.0 / Thunderbird 18.0 / SeaMonkey 2.15)之前,电池API只支持Android,Windows,Linux(安装UPower)系统.之后,18.0开始,也支持了MacOS.

相关链接

文档标签和贡献者

 此页面的贡献者: teoli, AshfaqHossain, ziyunfei
 最后编辑者: teoli,