使用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 相关文章推荐
JS自动缩小超出大小的图片
Oct 12 Javascript
JavaScript:new 一个函数和直接调用函数的区别分析
Jul 10 Javascript
js中哈希表的几种用法总结
Jan 28 Javascript
解决jQuery动态获取手机屏幕高和宽的问题
May 07 Javascript
JS合并数组的几种方法及优劣比较
Sep 19 Javascript
JavaScript模拟数组合并concat
Mar 06 Javascript
jquery判断类型是不是number类型的实例代码
Oct 07 Javascript
canvas知识总结
Jan 25 Javascript
微信小程序中使用ECharts 异步加载数据的方法
Jun 27 Javascript
js中获取URL参数的共用方法getRequest()方法实例详解
Oct 24 Javascript
原生JS实现拖拽效果
Dec 04 Javascript
JavaScript 与 TypeScript之间的联系
Nov 27 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+html5基于websocket实现聊天室的方法
2015/07/17 PHP
php网页版聊天软件实现代码
2016/08/12 PHP
php获取当前月与上个月月初及月末时间戳的方法
2016/12/05 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
让ie运行js时提示允许阻止内容运行的解决方法
2010/10/24 Javascript
基于jQuery的模仿新浪微博时间的组件
2011/10/04 Javascript
IE与Firefox在JavaScript上的7个不同句法分享
2011/10/30 Javascript
在jquery boxy中添加百度地图坐标拾取注意流程
2014/04/03 Javascript
javascript动态修改Li节点值的方法
2015/01/20 Javascript
jQuery实现简单的tab标签页效果
2016/09/12 Javascript
AngularJS路由实现页面跳转实例
2017/03/03 Javascript
详解nodeJS中读写文件方法的区别
2017/03/06 NodeJs
Gulp实现静态网页模块化的方法详解
2018/01/09 Javascript
详解Vue源码学习之callHook钩子函数
2018/07/25 Javascript
Vue实现远程获取路由与页面刷新导致404错误的解决
2019/01/31 Javascript
vue配置接口域名方法总结
2019/05/12 Javascript
vue相同路由跳转强制刷新该路由组件操作
2020/08/05 Javascript
Antd的table组件表格的序号自增操作
2020/10/27 Javascript
[03:06]2018年度CS GO最具人气解说-完美盛典
2018/12/16 DOTA
跟老齐学Python之让人欢喜让人忧的迭代
2014/10/02 Python
Django中使用locals()函数的技巧
2015/07/16 Python
用Python抢过年的火车票附源码
2015/12/07 Python
Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
2017/05/08 Python
Python3 读取Word文件方式
2020/02/13 Python
在jupyter notebook 添加 conda 环境的操作详解
2020/04/10 Python
幼儿园六一儿童节主持节目串词
2014/03/21 职场文书
考察现实表现材料
2014/05/19 职场文书
夏季药店促销方案
2014/08/22 职场文书
食品安全演讲稿
2014/09/01 职场文书
县政府班子个人对照检查材料
2014/10/05 职场文书
个人向公司借款协议书
2014/10/09 职场文书
唱歌比赛拉拉队口号
2015/12/25 职场文书
一文搞懂redux在react中的初步用法
2021/06/09 Javascript
SQLServer中exists和except用法介绍
2021/12/04 SQL Server
Spring Cloud OAuth2实现自定义token返回格式
2022/06/25 Java/Android