• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >html5 > HTML5的一个显示电池状态的API简介_html5教程技巧

HTML5的一个显示电池状态的API简介_html5教程技巧

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-03

本文主要包含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

  1. functionisBatteryStatusSupported() {
  2. return!!(navigator.battery || navigator.mozBattery);
  3. }

检查电池

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

  • 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的各个属性值,并且在事件触发时更新它们的值。

点击此处访问在线示例。

  1. >
  2. <htmllanghtmllang="en">
  3. <head>
  4. <title>The Battery Status API - Exampletitle>
  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 <spanid

您可能想查找下面的文章:

  • HTML5知识点总结
  • HTML5的本地存储
  • HTML5本地存储之IndexedDB
  • Html5实现文件异步上传功能
  • Html5新标签datalist实现输入框与后台数据库数据的动态匹配
  • 详解HTML5 window.postMessage与跨域
  • HTML5拖放API实现拖放排序的实例代码
  • 解决html5中video标签无法播放mp4问题的办法
  • HTML5新特性 多线程(Worker SharedWorker)
  • Html5新增标签有哪些

相关文章

  • 2018-12-03HTML5中div和section以及article的区别分析
  • 2018-12-03HTML5 Canvas中绘制椭圆的4种方法_html5教程技巧
  • 2018-12-03仿CSDN Blog返回页面顶部功能实现原理及代码_html5教程技巧
  • 2018-12-03简单介绍HTML5 defer和async的区别
  • 2018-12-03HTML5游戏开发-Box2dWeb应用(一)-创建各种各样的刚体
  • 2018-12-03h5元素/属性/格式化的详细介绍
  • 2018-12-03原生拖拽的相关内容推荐
  • 2018-12-0320个为前端开发者准备的文档和指南(3)
  • 2017-08-06HTML5 Canvas绘制圆点虚线实例
  • 2018-12-03小强的HTML5移动开发之路(45)——汇率计算器【1】

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • 移动端网站设计优化要点
    • 使用HTML5 Canvas画柱状图
    • history解决ajax出现的问题
    • 什么是 WebSocket?深入理解html5中WebSocket
    • 关于8 个超炫酷的纯 CSS3 动画及源码分享
    • 实例帮助你了解HTML5滑动区域选择元素Slider element
    • 会走动的图形html5时钟示例_html5教程技巧
    • 有关优化策略的文章推荐10篇
    • 梳理 文件缓存 manifest 用法
    • HTML5中的postMessage API基本使用方法分享

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有