惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
U
Unit 42
MyScale Blog
MyScale Blog
B
Blog
阮一峰的网络日志
阮一峰的网络日志
量子位
IT之家
IT之家
The GitHub Blog
The GitHub Blog
F
Fortinet All Blogs
Recent Announcements
Recent Announcements
V
Visual Studio Blog
G
Google Developers Blog
Last Week in AI
Last Week in AI
雷峰网
雷峰网
博客园 - 聂微东
博客园 - 叶小钗
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
J
Java Code Geeks
博客园 - 司徒正美
Y
Y Combinator Blog
T
The Blog of Author Tim Ferriss
月光博客
月光博客
aimingoo的专栏
aimingoo的专栏

张鑫旭-鑫空间-鑫生活

1分钟速度了解text-align match-parent声明 « 张鑫旭-鑫空间-鑫生活 光标的形状也能设置了,就是CSS caret-shape属性 « 张鑫旭-鑫空间-鑫生活 pretext与文字四面环绕效果的实现 « 张鑫旭-鑫空间-鑫生活 JSON.rawJSON方法的作用是什么? « 张鑫旭-鑫空间-鑫生活 如何使用CSS判断鼠标从哪个方向进入元素? « 张鑫旭-鑫空间-鑫生活 借助mediabunny纯JS实现视频水印、剪裁、合成等功能 « 张鑫旭-鑫空间-鑫生活 务必谨慎使用JS WeakRef弱引用 « 张鑫旭-鑫空间-鑫生活 CSS六边形头像的实现与蜂巢布局 « 张鑫旭-鑫空间-鑫生活 CSS corner-shape与背景底纹技术 « 张鑫旭-鑫空间-鑫生活 浅学WebTransport API:下一代Web双向通信技术 « 张鑫旭-鑫空间-鑫生活 HTML dialog元素新支持了closedBy属性 « 张鑫旭-鑫空间-鑫生活 HTML interestfor属性与悬停popover交互效果 « 张鑫旭-鑫空间-鑫生活 CSS3模拟window7炫酷界面效果展示 « 张鑫旭-鑫空间-鑫生活 图片旋转+剪裁js插件(兼容各浏览器) « 张鑫旭-鑫空间-鑫生活 纯js无图片无外链CSS图片幻灯片播放插件 « 张鑫旭-鑫空间-鑫生活 CSS border三角、圆角图形生成技术简介 « 张鑫旭-鑫空间-鑫生活 CSS “渐进增强”在web制作中常见应用举例 « 张鑫旭-鑫空间-鑫生活 让IE6/IE7/IE8浏览器支持CSS3属性 « 张鑫旭-鑫空间-鑫生活 jQuery – 高亮动态显示页面HTML代码插件 « 张鑫旭-鑫空间-鑫生活 翻译 – 逐渐消失的Flash网站 « 张鑫旭-鑫空间-鑫生活 CSS reset的重新审视 – 避免样式重置 « 张鑫旭-鑫空间-鑫生活 新浪微博插入话题后部分文字选中的js实现 « 张鑫旭-鑫空间-鑫生活 JavaScript实现http地址自动检测并添加URL链接 « 张鑫旭-鑫空间-鑫生活 CSS实现兼容性的渐变背景(gradient)效果 « 张鑫旭-鑫空间-鑫生活 CSS content内容生成技术以及应用 « 张鑫旭-鑫空间-鑫生活 CSS gradient渐变之webkit核心浏览器下的使用 « 张鑫旭-鑫空间-鑫生活 CSS渐变之CSS3 gradient在Firefox3.6下的使用 « 张鑫旭-鑫空间-鑫生活 区分IE8/IE7/IE6及其他浏览器-CSS “\9″hack « 张鑫旭-鑫空间-鑫生活 CSS实现跨浏览器兼容性的盒阴影效果 « 张鑫旭-鑫空间-鑫生活 CSS3&HTML5各浏览器支持情况一览表 « 张鑫旭-鑫空间-鑫生活
HTML5 Battery电池状态相关API简介 « 张鑫旭-鑫空间-鑫生活
张鑫旭,zhangxinxu · 2014-01-27 · via 张鑫旭-鑫空间-鑫生活

by zhangxinxu from http://www.zhangxinxu.com
本文地址:http://www.zhangxinxu.com/wordpress/?p=3922

该死,忘记充电了

21世纪出的基本生理需求已经不是食物了,而是电源和wifi.

没电没网寸步难行,有电有网雷厉风行。

因此,手机上实时反馈电量的一些信息很有必要。

所有的手机系统对此都有不错的反应。比如说下面这个:
充电器与手机-拟人化 张鑫旭-鑫空间-鑫生活

现在有疑问了:手机自身的电源管理已经相当不错了,那为何网页上还要增加一个HTML5 Battery电池状态API呢?

随着HTML5以及CSS3技术支持与发展,以及手机越来越高性能带来的可行性。移动端的页面显然会越来越烧电。例如,流畅的动画效果,模糊阴影等视觉体验。因此可能会出现这样的情况,用户电量快不行了,又没有电源来一发,你的网页还呼呼的烧电,显然,用户一旦感觉到浏览这破页面手机电量流失比武大郎那个还快,怕是会红杏出墙,寻找类似西门庆这种更持久的产品了。

因此,如果网页能够感知手机的电源,我们似乎能够为用户做的更多。比方说,当用户电量不足15%, 需要再来一发的时候,我们网页端提示:“尊敬的用户你好,您的手机需要来一发,是否需要进入省电浏览模式?需要 不需要”。如果用户点击需要省电,则我们可以:

屏幕

  1. 页面白色背景变灰一点,或整体暗度降低;
  2. 移除gif动图
  3. 移除一些不关键的动画
  4. 如果可能的话,避免DOM操作

网络
手机网络或者wifi等的使用也是烧电的,我们可以:

  1. 停止使用频繁的Ajax操作
  2. HTML5离线存储技术
  3. HTML5 WebStorage本地存储技术
  4. 不要请求一些不重要的图片(如装饰性图片)

听觉和触觉输出
声音(HTML5 audio API)啊,震动(HTML5 vibrate API)什么的只会让手机早泄的更快。渐弱这些效果,或者干脆不用。

线程
借助Page Visibility API等,对于非激活态的选项卡页面,例如游戏页面什么的,都暂停掉。

等其他一些省电的处理。

这一里一外的用户体验,势必让产品更加人性化。

由此可见,HTML5 Battery API还是很有用的。

HTML5 Battery的属性、方法

目前手机上浏览器多半webkit内核,目前PC要想测试这个API,只有FireFox浏览器支持。因此,API使用之前,需要如下捕获:

var battery = navigator.battery || navigator.webkitBattery || navigator.mozBattery || navigator.msBattery;
 
if (battery) {
    // battery API可用
}

一些属性如下:

  • battery.charging 布尔值。表示是否正在充电,如果返回值是true,则表示正在充电。
  • battery.chargingTime 数值。PC上值为0.
  • battery.level 数值。0~1. 显示电池电量的百分比,1表示电量满血复活。
  • battery.dischargingTime 数值或关键字字符串。显示当前电量能使用多长时间。在PC上,此数值为“无限”,也就是“英菲尼迪”(Infinity)。

在FireBug控制台测试结果如下截图:
battery API在FireFox浏览器下的测试截图

目前PC上的Chrome不鸟该API,包括mac.

一些方法

battery.addEventListener("chargingchange", function (e) {
   // 充电状态改变的时候会触发,例如发现正在充电,果断不使用节能模式。
}, false);
battery.addEventListener("chargingtimechange", function (e) {
   // 还需要充电的时间改变的时候触发
}, false);
battery.addEventListener("dischargingtimechange", function (e) {
   // 剩余电量的使用时间改变时候触发
}, false);

battery.addEventListener("levelchange", function (e) {
   // 电池电量的百分比改变时候触发
}, false);

由于我的手机浏览器不支持HTML5 Battery API,身边也没有测试机,因此恕我无法呈现demo。

不过,您可以试试下面这个我厂其他同事制作的demo, 二维码扫起来:
battery demo页面地址二维码

我个人觉得,HTML5 Battery API的实际应用,绝不是上面的电池管理,这个手机自身就做得不错,没必要重复造轮子。而是应该通过感知手机电池的状态,让我们的web页面在不同电量下做不同的事情。也就是我们常常听到的:人性化以及智能化

参考文章+新年祝福

最后的最后,祝您新年快乐,策马奔腾!微信红包抢的都是最大的!!

本文为原创文章,包含脚本行为,会经常更新知识点以及修正一些错误,因此转载请保留原出处,方便溯源,避免陈旧错误知识的误导,同时有更好的阅读体验。
本文地址:http://www.zhangxinxu.com/wordpress/?p=3922

(本篇完)