HTML5获取电池状态信息的方法

注意:该特性已经从 Web 标准中删除,虽然一些浏览器目前仍然支持它,但也许会在未来的某个时间停止支持,请尽量不要使用该特性。

<!DOCTYPE html>
<html>
  <head>
    <title>Battery Status API Example</title>
    <script>
      window.onload = function() {
        function updateBatteryStatus(battery) {
          console.log(battery);
          /* 只读. 一个布尔值,表示了系统电池的充电状态.如果电池正在充电,则返回true,其他情况,比如无法获取
                系统电池的充电状态,或者系统不使用电池,或者电池不在充电,都返回false. */
          console.log(battery.charging);
          /* 只读. 一个数字,单位为秒.表示了系统的电池的电量等级,从0到1.0.如果电量已经完全消耗完,则返回0,
                如果电量为充满状态,或者无法获取到这个等级值,以及如果系统没有电池,则返回1.0 */
          console.log(battery.level);
          /* 只读.一个数字,单位为秒.表示了电池中的电量还剩多长时间会消耗完毕.如果电池正在充电,或者无法获取到
                这个时间值,以及如果系统没有电池,则返回正无穷大. */
          console.log(battery.dischargingTime / 60);
          /* 只读. 一个整字,单位为秒.表示了电池还剩多长时间充满电.如果电池已经充满电了,则返回0.如果电池不在充电,
                或者无法获取到这个时间值,则返回正无穷大. */
          console.log(battery.chargingTime);
        }
        /* chargingchange;
        当charging属性值发生改变时触发该事件.

        chargingtimechange;
        当chargingTime属性值发生改变时触发该事件.

        dischargingtimechange;
        当dischargingTime属性值发生改变时触发该事件.

        levelchange;
        当level属性值发生改变时触发该事件. */
        
        navigator.getBattery().then(function(battery) {
          //当promise解决后,最初更新电池状态...
          updateBatteryStatus(battery);

          // ..以及任何后续更新.
          battery.onchargingchange = function() {
            updateBatteryStatus(battery);
          };

          battery.onlevelchange = function() {
            updateBatteryStatus(battery);
          };

          battery.ondischargingtimechange = function() {
            updateBatteryStatus(battery);
          };
        });
      };
    </script>
  </head>

  <body>
    <div id="charging">charging state unknown</div>
    <div id="level">battery level unknown</div>
    <div id="dischargeTime">discharging time unknown</div>
  </body>
</html>

需要注意的是,这些API存在不兼容问题,需要在使用时加上浏览器前缀。
以下是事件处理程序(及其相应的事件处理程序的事件类型)必须支持的batterymanager对象属性:

事件处理程序事件处理程序事件类型
onchargingchangechargingchange
onchargingtimechangechargingtimechange
ondischargingtimechangedischargingtimechange
onlevelchangelevelchange

拓展:

HTML5常用API

  1. 页面可见性API——Page Visibility
  2. API全屏API——Full Screen
  3. 访问摄像头和麦克风——getUserMedia API
  4. 电池API——Battery API
  5. 预加载——Link Prefetching
  6. 监听屏幕旋转变化接口: ——orientationchange
  7. 手机震动: ——window.navigator.vibrate(200)
  8. 当前语言: ——navigator.language
  9. 联网状态: ——navigator.onLine
  10. 页面可编辑: ——contentEditable
  11. 浏览器活跃窗口监听: ——window.onblur & window.onfocus
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值