检测设备或电脑的电量水平可以帮助您告知用户当前状态。在 Mozilla 的 WebAPI 中,我们提供了 Battery API 来实现这种可能性。
访问电池
首先,需要访问电池对象
var battery = navigator.mozBattery;
属性
提供了一些属性来检测设备中电池的充电水平
- 电池电量
- 检查当前电池电量。返回 0 到 1 之间的值。
- 电池充电状态
- 一个布尔值,表示设备/电脑当前是否正在充电。
- 电池充电时间
- 以秒为单位计算,直到充满电所需的时间。充电时可用。
- 电池放电时间
- 以秒为单位计算,直到放电所需的时间。未充电时可用。
// 获取电池电量百分比
var batteryLevel = battery.level * 100 + "%";
// 获取设备是否正在充电
var chargingStatus = battery.charging;
// 设备充满电所需的时间
var batteryCharged = battery.chargingTime;
// 设备放电所需的时间
var batteryDischarged = battery.dischargingTime;
事件
有四个事件可用于检测电池状态的变化
- levelchange
- 如果电池电量发生变化。
- chargingchange
- 检测设备是否从充电状态变为未连接状态,反之亦然。
- chargingtimechange
- 当设备的充电时间发生变化时(连接电源时)
- dischargingtimechange
- 当设备的放电时间发生变化时(断开电源时)
battery.addEventLister("levelchange", function () {
// Device's battery level changed
}, false);
battery.addEventListener("chargingchange", function () {
// Device got plugged in to power, or unplugged
}, false);
battery.addEventListener("chargingtimechange", function () {
// Device's charging time changed
}, false);
battery.addEventListener("dischargingtimechange", function () {
// Device's discharging time changed
}, false);
设备支持
Battery API 在以下版本中受支持 Firefox Beta 上
- Android(目前仅限 Firefox Aurora)
- Windows
- Linux(对于安装了 UPower 的发行版 - 现在大多数发行版都捆绑了)
目前我们还没有人在开发 Mac OS X 的实现,所以如果你有这方面的技能,我们很乐意看到你的贡献!
演示和代码
我制作了一个基本的 Battery API 演示,代码也位于 GitHub 上的 Battery API 代码库 中。
如果您的设备上没有获得预期的结果,请 提交错误报告,我们会进行调查。此功能目前处于实验阶段,可能尚未准备好用于生产环境。
更新:2012 年 9 月 26 日
自发布此文章以来,此 API 现已取消前缀,并且已添加了 Mac OS X 的支持。
关于 Robert Nyman [荣誉编辑]
Mozilla Hacks 的技术布道师和编辑。发表演讲并撰写有关 HTML5、JavaScript 和开放网络的博客文章。Robert 是 HTML5 和开放网络的坚定支持者,自 1999 年以来一直从事 Web 前端开发工作 - 在瑞典和纽约市。他还在 http://robertnyman.com 上定期撰写博客文章,并且热爱旅行和结识新朋友。
16 条评论