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

   移动设备的份额在网络流量中在大量增长,其所贡献的网络流量非常庞大,以至于为了移动设备,我们单独创建了一些API和设计理念。一个非常典型的例子是 W3C电池状态API,它允许一个应用程序获知设备的电池状态信息。这篇文章探索了这个新的API,为你展示了如何把它整合进你现有的应用程序。

  检测设备是否支持

  目前电池API依旧没有得到主流支持。因此,在使用这个API前需要确认当前设备是否支持此API。下面展示的函数返回一个布恩值(True/False),指示当前浏览器是否支持电池状态API。

  该函数首先检测了 navigator.battery 对象是否存在。如果不存在,继续检测 Mozilla 专用的

  navigator.mozBattery是否存在。我曾经见过有些代码还检测了 webkitBattery对象,但是我无法证实其在Chrome中是否存在。

  参考文档:https://developer.mozilla.org/en-US/docs/DOM/window.navigator.battery

  XML/HTML Code复制内容到剪贴板

  functionisBatteryStatusSupported() {

  return!!(navigator.battery || navigator.mozBattery);

  }

  检查电池

  如果电池对象存在,它会包含下列四个只读属性。

  charging —— (布恩值)指示系统的电池当前是否正在充电。

  如果系统不存在电池,或无法确定电池是否在充电,返回值是 True

  chargingTime —— (数值)电池完全充满电量所需的时间(单位:秒)

  当电池完全被充满电时,或者系统不存在电池时,这个值为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复制内容到剪贴板

 

  1. <!DOCTYPE html>
  2. <htmllanghtmllang="en">
  3. <head>
  4. <title>The Battery Status API - Example</title>
  5. <metacharsetmetacharset="UTF-8"/>
  6. <script>
  7. window.addEventListener("load", function() {
  8. var battery = navigator.battery || navigator.mozBattery;
  9. function displayBatteryStats() {
  10. document.getElementById("charging").textContent = (battery.charging) ? "charging" : "not charging";
  11. document.getElementById("chargingtime").textContent = battery.chargingTime;
  12. document.getElementById("dischargingtime").textContent = battery.dischargingTime;
  13. document.getElementById("level").textContent = battery.level * 100;
  14. }
  15. if (battery) {
  16. displayBatteryStats();
  17. battery.addEventListener("chargingchange", displayBatteryStats, false);
  18. battery.addEventListener("chargingtimechange", displayBatteryStats, false);
  19. battery.addEventListener("dischargingtimechange", displayBatteryStats, false);
  20. battery.addEventListener("levelchange", displayBatteryStats, false);
  21. } else {
  22. document.getElementById("stats").textContent = "Sorry, your browser does not support the Battery Status API";
  23. }
  24. }, false);
  25. </script>
  26. </head>
  27. <body>
  28. <dividdivid="stats">
  29. Your battery is currently <spanidspanid="charging"></span>.<br/>
  30. Your battery will be charged in <spanidspanid="chargingtime"></span> seconds.<br/>
  31. Your battery will be discharged in <spanidspanid="dischargingtime"></span> seconds.<br/>
  32. Your battery level is <spanidspanid="level"></span>%.
  33. </div>
  34. </body>
  35. </html>

  结论

  本文为Battery Status API给出了一个完整的总结和展示,尽管其仍未得到主流支持,但是这只是时间问题。考虑到移动互联网的激增,开发者应该尽快将电池信息纳入设计范畴内。

时间: 2024-08-17 05:44:11

HTML5的一个显示电池状态的API简介的相关文章

Android实现侦听电池状态显示、电量及充电动态显示的方法_Android

本文实例讲述了Android实现侦听电池状态显示.电量及充电动态显示的方法,是Android应用程序开发中非常常用的重要功能.分享给大家供大家参考之用.具体方法如下: 使用android系统的电池侦听和系统的电池图片如下: 引入源代码中的两个xml文件(这里我在android2.2的jar包中找不到,所以才引入,源代码路径:C:\android-sdk-windows\platforms\android-8\data\res\drawable),之后会发现stat_sys_battery.xml

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

从Mozilla Aurora 11起,火狐浏览器里实现了一些新功能,其中一个就是对电池状态接口的基本实现.这个很简单的接口能提供你关于电池当前电量,是否在充电等信息,以及一些电池状态变化事件.让我们来看看效果! 电池对象是存放在window.navigator.battery里,但因为这是火狐浏览器首次实现并提供这个接口,并未普及,你需要使用window.navigator.mozBattery这种写法.这个mozBattery对象有下列属性: 1.charging: 表示当前电池设备是否在充

《iOS 6高级开发手册(第4版)》——1.3节秘诀:检查设备接近度和电池状态

1.3 秘诀:检查设备接近度和电池状态iOS 6高级开发手册(第4版)UIDevice类提供了一些API,使你能够跟踪设备的特征,包括电池的状态和接近度传感器.秘诀1-1演示了如何启用和查询对这两种技术的监测.它们二者都以通知的形式提供更新,可以订阅它们,以便在有重要的更新时通知你的应用程序. 1.3.1 启用和禁用接近度传感器接近度在此时是一个特定于iPhone的特性.iPod Touch和iPad没有提供接近度传感器.除非具有相对身体部位握持iPhone的某个迫切的理由(或者反之亦然),否则

Android编程实现对电池状态的监视功能示例_Android

本文实例讲述了Android编程实现对电池状态的监视功能.分享给大家供大家参考,具体如下: 最近在开发一个与GPS相关的项目,因为其中涉及到了GPS的使用,众所周知,GPS是相当耗电的,因此就想着怎么能知道当前的电量,并且在电量达到一个下限的时候,及时提醒给用户,以根据情况关闭GPS,节省电量,以备电话急用,后来查资料,看API,终于找到了方法,怎么来监视电量,根据电量的变化来获取当前的电量多少,并且根据其它状态综合对手机进行管理,以达到管理最优的状态. 下面是代码: private Broad

与众不同 windows phone (47) - 8.0 其它: 锁屏信息和锁屏背景, 电池状态, 多分辨率, 商店, 内置协议, 快速恢复

原文:与众不同 windows phone (47) - 8.0 其它: 锁屏信息和锁屏背景, 电池状态, 多分辨率, 商店, 内置协议, 快速恢复 [源码下载] 与众不同 windows phone (47) - 8.0 其它: 锁屏信息和锁屏背景, 电池状态, 多分辨率, 商店, 内置协议, 快速恢复 作者:webabcd 介绍与众不同 windows phone 8.0 之 其它 锁屏信息和锁屏背景 电池状态 多分辨率应用 与 Windows Phone 商店相关的操作 系统的内置协议 快

win7电脑中的网络连接显示未知状态怎么办?

  可以说,在ghost win7 64位旗舰版下载中,网络连接绝对是一个非常困扰我们的难题,很多时候,网络连接故障会让我们感到十分的头疼,不知道原因,不知道如何解决故障,当然也就无法正常的使用电脑了.就如今天一位朋友在咱们论坛上提到的,win7电脑中的网络连接显示未知状态,这是什么原因引起的呢?下面,咱们就一起来分析一下吧! 故障分析:一般来说,ghost win7 64位旗舰版下载中出现网络连接显示未知状态的情况都是由于系统网络所依赖的服务或组无法启动所引起的问题.大致解决方法如下: 一.咱

magento -- 关于更新订单状态的API接口函数

做Magento和其他系统的对接时需要调用Magento的Api,原以为更新一个订单的状态这样的函数Magento默认肯定自带有,一开始却找不到,打开官网看order部分提供的接口函数列表也没找到.   按说明,从上到下依次为批量获取订单,获取单个订单,给订单添加备注,锁定订单,解锁订单和取消订单.在我认为不存在这个函数准备自己写一个的时候,看代码发现其实addComment这个函数已经提供了更新订单状态的功能,而不仅仅是添加备注,看代码 public function addComment($

使用PHP处理数据库数据如何将数据返回客户端并显示当前状态_php实例

php处理大量数据,每处理一个数据返回客户端显示当前状态的方法. 类似于dedecms生成静态页 想法: 1.客户端发送请求 2.服务器端接受请求,开始统计所需处理的数据量 3.将所需处理数据按一定规则排列,发送到服务器处理端 4.服务器处理端处理了第一个数据,将处理结果经过一定处理后发送给客户端 5.客户端接收到结果,自动将处理结果显示并发送到服务器 6.服务器接收到处理结果 将它转发到服务器处理端 7.处理端继续处理结果... 8.循环4-7步骤,直到处理完毕 实验过程: 1.创建数据库和表

三星S5怎么显示电池电量百分比?Galaxy S5电量百分比设置

1. 手机默认的电量显示是一个图标,我们根本看不出目前电量问题,我们要设置点击[应用程序].   计算">  2.然后在应用中找到[设定]点击进入,细节如图所示.   3. 然后在下图中找到[电池]按钮,轻点击进入.   4.好了在此我们会看到有一个[显示电池电量百分比]我们只要把它选中即可.     5. 好了设置成功了,你会发现你手机电池电量显示了百分比了哦.