使用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 相关文章推荐
flexigrid 类似ext grid的JS表格代码
Jul 17 Javascript
JS实现为表格动态添加标题的方法
Mar 31 Javascript
JQuery控制radio选中和不选中方法总结
Apr 15 Javascript
js控制div弹出层实现方法
May 11 Javascript
js 右侧浮动层效果实现代码(跟随滚动)
Nov 22 Javascript
jquery实现全选功能效果的实现代码
May 05 Javascript
js实现常用排序算法
Aug 09 Javascript
Angular路由简单学习
Dec 26 Javascript
JS实现字符串去重及数组去重的方法示例
Apr 21 Javascript
30分钟用Node.js构建一个API服务器的步骤详解
May 24 Javascript
实现高性能javascript的注意事项
May 27 Javascript
如何使用vue3打造一个物料库
May 08 Vue.js
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
PHP4实际应用经验篇(8)
2006/10/09 PHP
php生成固定长度纯数字编码的方法
2015/07/09 PHP
PHP 实现页面静态化的几种方法
2017/07/23 PHP
浅谈PHP封装CURL
2019/03/06 PHP
php设计模式之装饰模式应用案例详解
2019/06/17 PHP
基于PHP的登录和注册的功能的实现
2020/08/06 PHP
基于jQuery的ajax功能实现web service的json转化
2009/08/29 Javascript
jQuery源码分析-01总体架构分析
2011/11/14 Javascript
js局部刷新页面时间具体实现
2013/07/04 Javascript
js使用for循环与innerHTML获取选中tr下td值
2014/09/26 Javascript
js和jquery如何获取图片真实的宽度和高度
2014/09/28 Javascript
JavaScript生成随机数的4种自定义函数分享
2015/02/28 Javascript
理解 JavaScript Scoping & Hoisting(二)
2015/11/18 Javascript
Vue.js之slot深度复制详解
2017/03/10 Javascript
Vue组件实例间的直接访问实现代码
2017/08/20 Javascript
详解VueRouter进阶之导航钩子和路由元信息
2017/09/13 Javascript
基于Vue实现图书管理功能
2017/10/17 Javascript
Vue中如何实现proxy代理
2018/04/20 Javascript
python下如何让web元素的生成更简单的分析
2008/07/17 Python
Python中的两个内置模块介绍
2015/04/05 Python
详解python调度框架APScheduler使用
2017/03/28 Python
python list删除元素时要注意的坑点分享
2018/04/18 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
2019/01/17 Python
python判断字符串或者集合是否为空的实例
2019/01/23 Python
python是否适合网页编程详解
2019/10/04 Python
Python Selenium 设置元素等待的三种方式
2020/03/18 Python
python文件路径操作方法总结
2020/12/21 Python
HTML5自定义属性的问题分析
2019/08/16 HTML / CSS
澳大利亚吉他在线:Artist Guitars
2017/03/30 全球购物
数据库笔试题
2013/05/09 面试题
车间调度岗位职责
2013/11/30 职场文书
班级活动策划书
2014/02/06 职场文书
品质管理部岗位职责范文
2014/03/01 职场文书
助理政工师申报材料
2014/06/03 职场文书
2015年小学数学教师个人工作总结
2015/05/25 职场文书
你知道哪几种MYSQL的连接查询
2021/06/03 MySQL