HTML5API的电池状态简介
移动设备在网络流量中所占的份额越来越大,它所贡献的网络流量非常巨大。因此,对于移动设备,我们独立地创建了一些API和设计概念,一个非常典型的例子是W3C的电池状态,API,它允许应用程序了解设备的电池状态信息。
检测设备是否受支持
目前,电池API还没有得到主流的支持。因此,在使用这个API之前,您需要确认当前设备是否支持这个API。下面所示的函数返回一个布恩值(true false),指示当前浏览器是否支持电池状态API。
该函数首先检测是否navigator.battery对象存在。如果它不存在,继续检测Mozilla专用
是否navigator.mozbattery存在。我看过一些代码,也发现webkitbattery对象,但我无法验证它是否存在于铬。
参考文献:http:/ /开发商Mozilla。org /我们/ / / window.navigator.battery DOM文档
xml代码将内容复制到剪贴板。
functionisbatterystatussupported(){
返回(navigator.battery navigator.mozbattery | |)!;
}
检查电池
如果电池对象存在,它将包含以下四个只读属性。
充电mdash;mdash;(布恩值)指示系统的电池正在充电。
如果系统没有电池,或者如果不能确定电池是否充电,则返回值为真。
充电时间mdash;mdash;(数字)全电池充满电所需的时间(单位:秒)
当电池充满电,或当系统不存在时,其值是0。
如果系统是不收费的,或是无法确定需要完全充满电的时间,这个值是无穷(无穷大)。
dischargingtime mdash;mdash;类似的充电时间,(数字)对电池完全放电直到剩下的系统休眠(单位:秒)。
如果放电时间不确定,或系统没有电池或充电的系统,这个值是无穷(无穷大)。
水平mdash;mdash;(价值)的器件的电流水平,值的范围是(0 ~ 1),对应于电的剩余量的百分比。
1意味着电池充满电,或没有电池,或价值是不确定的。
电池事件检测
所有上述属性都绑定到一个电池事件。这些事件用于指示电池状态的变化。例如,电源的插入将改变充电性能由假变为真。所有四个电池事件列示如下:
chargingchange mdash;mdash;这类事件被触发时,充电特性改变。这个事件可以被onchargingchange加工()事件处理程序。
chargingtimechange mdash;mdash;这种类型的事件被触发时,充电时间属性的改变。这个事件可以被onchargingtimechange加工()事件处理程序。
dischargingtimechange mdash;mdash;这种类型的事件被触发时,dischargingtime性质发生改变。这个事件可以被ondischargingtimechange加工()事件处理程序。
新mdash;mdash;这类事件被触发时,属性的改变。这个事件可以被onlevelchange加工()事件处理程序。
示例页面
下面的代码演示如何使用电池状态API的属性和事件。
示例页面显示每个API属性的值,并在触发事件时更新它们的值。
单击此处可访问联机示例。
xml代码将内容复制到剪贴板。
电池状态API示例
Window.addEventListener(负荷
VaR电池= navigator.battery navigator.mozbattery | |;
功能displaybatterystats(){
document.getelementbyid(充电)。内容=(电池充电)充电:不收费;
document.getelementbyid(充电时间的内容,battery.chargingtime);
document.getelementbyid(dischargingtime内容= battery.dischargingtime);
document.getelementbyid(水平)的内容battery.level * 100 =;
}
如果(电池){
displaybatterystats();
Battery.addEventListener(chargingchange
Battery.addEventListener(chargingtimechange
Battery.addEventListener(dischargingtimechange
Battery.addEventListener(新
{人}
document.getelementbyid(属性)。内容=对不起,您的浏览器不支持电池状态);
}
},假);
您的电池目前。
你的电池将在几秒钟内充电。
你的电池几秒钟就会放电。
你的电池电量是。
结论
本文对电池状态API做了全面的总结和介绍,虽然它还没有得到主流的支持,但这只是时间问题。鉴于移动互联网的激增,开发人员应该尽快将电池信息纳入设计范畴。