使用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 相关文章推荐
use jscript List Installed Software
Jun 11 Javascript
Array.prototype 的泛型应用分析
Apr 30 Javascript
转换json格式的日期为Javascript对象的函数
Jul 13 Javascript
window.ActiveXObject使用说明
Nov 08 Javascript
jQuery数据缓存功能的实现思路及简单模拟
May 27 Javascript
基于BootStrap Metronic开发框架经验小结【三】下拉列表Select2插件的使用
May 12 Javascript
JS在onclientclick里如何控制onclick的执行
May 30 Javascript
vue购物车插件编写代码
Nov 27 Javascript
谈谈JS中的!!
Dec 07 Javascript
微信小程序中遇到的iOS兼容性问题小结
Nov 14 Javascript
React生命周期原理与用法踩坑笔记
Apr 28 Javascript
vue实现循环滚动列表
Jun 30 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设计模式 Composite (组合模式)
2011/06/26 PHP
Json_encode防止汉字转义成unicode的方法
2016/02/25 PHP
抛弃 PHP 代价太高
2016/04/26 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
EXT窗口Window及对话框MessageBox
2011/01/27 Javascript
Javascript 鼠标移动上去小三角形滑块缓慢跟随效果
2013/04/26 Javascript
自定义函数实现IE7与IE8不兼容js中trim函数的问题
2015/02/03 Javascript
Javascript中typeof 用法小结
2015/05/12 Javascript
JQuery分屏指示器图片轮换效果实例
2015/05/21 Javascript
js闭包所用的场合以及优缺点分析
2015/06/22 Javascript
使用DNode实现php和nodejs之间通信的简单实例
2015/07/06 NodeJs
C++中的string类的用法小结
2015/08/07 Javascript
DOM中事件处理概览与原理的全面解析
2016/08/16 Javascript
javascript表单正则应用
2017/02/04 Javascript
JS数组搜索之折半搜索实现方法分析
2017/03/27 Javascript
HTML5+Canvas调用手机拍照功能实现图片上传(上)
2017/04/21 Javascript
基于node.js的fs核心模块读写文件操作(实例讲解)
2017/09/10 Javascript
微信小程序下拉刷新PullDownRefresh的使用方法
2018/11/29 Javascript
基于jquery ajax的多文件上传进度条过程解析
2019/09/11 jQuery
Vue Extends 扩展选项用法完整实例
2019/09/17 Javascript
JS实现打字游戏
2019/12/17 Javascript
[06:16]《DAC最前线》之地区预选赛全面回顾
2015/01/19 DOTA
[37:37]DAC2018 4.4 淘汰赛 Optic vs Mineski 第二场
2018/04/05 DOTA
asyncio 的 coroutine对象 与 Future对象使用指南
2016/09/11 Python
Python Django 命名空间模式的实现
2019/08/09 Python
学python安装的软件总结
2019/10/12 Python
python中的TCP(传输控制协议)用法实例分析
2019/11/15 Python
wxPython实现文本框基础组件
2019/11/18 Python
Django如何继承AbstractUser扩展字段
2020/11/27 Python
python如何用matplotlib创建三维图表
2021/01/26 Python
详解CSS3中@media的实际使用
2015/08/04 HTML / CSS
高二物理教学反思
2014/02/08 职场文书
绿色家庭事迹材料
2014/05/01 职场文书
公司委托书格式范本
2014/09/16 职场文书
付款承诺函范文
2015/01/21 职场文书
教您怎么制定西餐厅运营方案 ?
2019/07/05 职场文书