首页 > 编程 > HTML > 正文

HTML5的一个显示电池状态的API简介

2020-03-24 17:10:04
字体:
来源:转载
供稿:网友
移动设备的份额在网络流量中在大量增长,其所贡献的网络流量非常庞大,以至于为了移动设备,我们单独创建了一些API和设计理念。一个非常典型的例子是 W3C电池状态API,它允许一个html' target='_blank'>应用程序获知设备的电池状态信息。这篇文章探索了这个新的API,为你展示了如何把它整合进你现有的应用程序。
检测设备是否支持目前电池API依旧没有得到主流支持。因此,在使用这个API前需要确认当前设备是否支持此API。下面展示的函数返回一个布恩值(True/False),指示当前浏览器是否支持电池状态API。该函数首先检测了 navigator.battery 对象是否存在。如果不存在,继续检测 Mozilla 专用的 navigator.mozBattery是否存在。我曾经见过有些代码还检测了 webkitBattery对象,但是我无法证实其在Chrome中是否存在。参考文档:http://developer.mozilla.org/en-US/docs/DOM/window.navigator.battery

XML/HTML Code复制内容到剪贴板
functionisBatteryStatusSupported(){ return!!(navigator.battery||navigator.mozBattery); }
当电池完全被充满电时,或者系统不存在电池时,这个值为0。 如果系统不在充电,或者无法确定完全充满电所需时间,这个值为 (无穷大)。 dischargingTime 和chargingTime相似,(数值)到电池完全放电直到系统休眠剩余的时间(单位:秒) 如果放电时间无法确定,或 系统没有电池 或 系统正在充电,这个值为 (无穷大) level (数值) 设备当前电量等级。取值在(0 ~ 1.0)区间,与剩余电量百分比对应。 1.0表示电池完全充满电,或者不存在电池,或者数值无法确定。
检测电池事件上述所有属性都与一个电池事件绑定。这些事件用来指示电池状态的变化。比如,插入电源会使charging属性从false变为true。全部四种电池事件如下所列: chargingchange 这个类型的事件会在charging属性改变时触发。这个事件可以被 onchargingchange()事件处理器捕获和处理。
chargingtimechange 这个类型的事件会在chargingtime属性改变时触发。这个事件可以被 onchargingtimechange()事件处理器捕获和处理。
dischargingtimechange 这个类型的事件会在dischargingTime属性改变时触发。这个事件可以被 ondischargingtimechange()事件处理器捕获和处理。
levelchange 这个类型的事件会在level属性改变时触发。这个事件可以被 onlevelchange()事件处理器捕获和处理。
示例页面下面的代码展示了如何使用 电池状态API 的属性和事件。示例页面显示了API的各个属性值,并且在事件触发时更新它们的值。点击此处访问在线示例。

XML/HTML Code复制内容到剪贴板
head title TheBatteryStatusAPI-Example /title metacharsetmetacharset= UTF-8 / script window.addEventListener( load ,function(){ varbattery=navigator.battery||navigator.mozBattery; functiondisplayBatteryStats(){ document.getElementById( charging ).textContent=(battery.charging)? charging : notcharging document.getElementById( chargingtime ).textContent=battery.chargingTime; document.getElementById( dischargingtime ).textContent=battery.dischargingTime; document.getElementById( level ).textContent=battery.level*100; } if(battery){ displayBatteryStats(); battery.addEventListener( chargingchange ,displayBatteryStats,false); battery.addEventListener( chargingtimechange ,displayBatteryStats,false); battery.addEventListener( dischargingtimechange ,displayBatteryStats,false); battery.addEventListener( levelchange ,displayBatteryStats,false); }else{ document.getElementById( stats ).textContent= Sorry,yourbrowserdoesnotsupporttheBatteryStatusAPI ; } },false); /script /head body dividdivid= stats Yourbatteryiscurrently spanidspanid= charging /span . br/ Yourbatterywillbechargedin spanidspanid= chargingtime /span seconds. br/ Yourbatterywillbedischargedin spanidspanid= dischargingtime /span seconds. br/ Yourbatterylevelis spanidspanid= level /span %. /div /body /html
结论本文为Battery Status API给出了一个完整的总结和展示,尽管其仍未得到主流支持,但是这只是时间问题。考虑到移动互联网的激增,开发者应该尽快将电池信息纳入设计范畴内。
html教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表