使用JavaScript获取电池状态的方法


Posted in Javascript onMay 03, 2014

从Mozilla Aurora 11起,火狐浏览器里实现了一些新功能,其中一个就是对电池状态接口的基本实现。这个很简单的接口能提供你关于电池当前电量,是否在充电等信息,以及一些电池状态变化事件。让我们来看看效果!

电池对象是存放在window.navigator.battery里,但因为这是火狐浏览器首次实现并提供这个接口,并未普及,你需要使用window.navigator.mozBattery这种写法。这个mozBattery对象有下列属性:

1.charging: 表示当前电池设备是否在充电。如果电池没有充电,这个值为false。如果为true,表明电池正在充电。当前的API实现里不能得到是否充满的信息,也无法判断当前设备是否有电池。
2.chargingTime: 是指距离电池充满还需要多久。
3.dischargingTime: 电池已使用时间。
4.level: 表示电量等级,从0到1.0。当这个值为0时,表示电量耗尽,系统即将关机。如果为1.0,则表示电池满电。
针对这些状态,接口里提供了各自相应的事件,包括onchargingchange, onchargingtimechange, ondischargingtimechange, 和 onlevelchange。基本的用法很简单:

// 获取电池对象!
var battery = navigator.battery || navigator.webkitBattery || navigator.mozBattery;
// 显示一些有用属性值
console.warn("电池充电状态: ", battery.charging); // true
console.warn("电量水平: ", battery.level); // 0.58
console.warn("电池使用时间: ", battery.dischargingTime);
// 设置一些事件监听器
battery.addEventListener("chargingchange", function(e) {
 console.warn("电池充电状态变化: ", battery.charging);
}, false);
battery.addEventListener("chargingtimechange", function(e) {
 console.warn("电池充电时间变化: ", battery.chargingTime);
}, false);
battery.addEventListener("dischargingtimechange", function(e) {
 console.warn("电池使用时间变化: ", battery.dischargingTime);
}, false);
battery.addEventListener("levelchange", function(e) {
 console.warn("电量水平变化: ", battery.level);
}, false);

很简单,不是吗?这几个接口都非常的棒:简单,高效,实用!

为什么要使用这些电池编程接口?因为很多用浏览器封装的移动应用(非‘native')需要知道系统的当前状态。有些CPU对电量很敏感,在处理某些特殊任务前要设备有足够的电量,App应事先提醒用户电量不足,请充电。

Javascript 相关文章推荐
Javascript Object 对象学习笔记
Dec 17 Javascript
jQuery检查事件是否触发的方法
Jun 26 Javascript
javascript获取本机操作系统类型的方法
Aug 13 Javascript
基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
Sep 02 Javascript
jQuery手指滑动轮播效果
Dec 22 Javascript
非常优秀的JS图片轮播插件Swiper的用法
Jan 03 Javascript
老生常谈jacascript DOM节点获取
Apr 17 Javascript
jquery手机触屏滑动拼音字母城市选择器的实例代码
Dec 11 jQuery
vue生成token并保存到本地存储中
Jul 17 Javascript
vue+axios实现文件下载及vue中使用axios的实例
Sep 21 Javascript
JS实现根据详细地址获取经纬度功能示例
Apr 16 Javascript
Javascript生成器(Generator)的介绍与使用
Jan 31 Javascript
JavaScript打印网页指定区域的例子
May 03 #Javascript
js检测输入内容全为空格的方法
May 03 #Javascript
JS兼容浏览器的导出Excel(CSV)文件的方法
May 03 #Javascript
离开当前页面前使用js判断条件提示是否要离开页面
May 02 #Javascript
js日期联动示例
May 02 #Javascript
jQuery实现的多选框多级联动插件
May 02 #Javascript
自己使用js/jquery写的一个定制对话框控件
May 02 #Javascript
You might like
php 获取可变函数参数的函数
2009/08/26 PHP
php常用数学函数汇总
2014/11/21 PHP
Yii2下session跨域名共存的解决方案
2017/02/04 PHP
Laravel中错误与异常处理的用法示例
2018/09/16 PHP
使用jquery给input和textarea设定ie中的focus
2008/05/29 Javascript
JQUBar 基于JQUERY的柱状图插件
2010/11/23 Javascript
Node.js中使用Buffer编码、解码二进制数据详解
2014/08/16 Javascript
jQuery经过一段时间自动隐藏指定元素的方法
2015/03/17 Javascript
js实现iPhone界面风格的单选框和复选框按钮实例
2015/08/18 Javascript
jquery实现具有收缩功能的垂直导航菜单
2016/02/16 Javascript
Javascript之面向对象--封装
2016/12/02 Javascript
微信公众号开发 实现点击返回按钮就返回到聊天界面
2016/12/15 Javascript
微信小程序 video详解及简单实例
2017/01/16 Javascript
angularjs ocLazyLoad分步加载js文件实例
2017/01/17 Javascript
js获取地址栏参数的两种方法
2017/06/27 Javascript
js中bool值的转换及“&&”、“||”、 “!!”详解
2017/12/21 Javascript
使用json-server简单完成CRUD模拟后台数据的方法
2018/07/12 Javascript
js实现全选反选不选功能代码详解
2019/04/24 Javascript
layui实现三级联动效果
2019/07/26 Javascript
js实现旋转的星空效果
2019/11/01 Javascript
javascript操作元素的常见方法小结
2019/11/13 Javascript
Vue 3自定义指令开发的相关总结
2021/01/29 Vue.js
python连接mongodb操作数据示例(mongodb数据库配置类)
2013/12/31 Python
在Python中使用poplib模块收取邮件的教程
2015/04/29 Python
python保存文件方法小结
2018/07/27 Python
详解Python做一个名片管理系统
2019/03/14 Python
详解Python 解压缩文件
2019/04/09 Python
python爬虫项目设置一个中断重连的程序的实现
2019/07/26 Python
python实现大战外星人小游戏实例代码
2019/12/26 Python
Python-jenkins 获取job构建信息方式
2020/05/12 Python
Python基于Faker假数据构造库
2020/11/30 Python
销售心得体会
2014/01/02 职场文书
工作疏忽检讨书
2014/01/25 职场文书
四风问题对照检查材料整改措施
2014/09/27 职场文书
学校艾滋病宣传活动总结
2015/05/09 职场文书
污水处理保证书
2015/05/09 职场文书