JavaScript Battery API简介

本文概述

  • 检查可用性
  • 你需要了解的所有关于API的信息
在不知道设备电池状态的情况下, Web开发人员必须在设计Web应用程序时假设电池电量足以应付当前任务。这意味着设备的电池可能比期望的更快耗尽, 因为Web开发人员无法根据电池状态做出决定。
【JavaScript Battery API简介】?在编写Web应用程序时, 你是否关心电池的任务?请在评论框中与社区分享你的答案。
在许多情况下, 此API可能有用:
  • 这可用于调整应用程序的资源使用情况, 以减少电池电量不足时的电池消耗。
  • 为了防止数据丢失, 请在电池用完之前保存诸如编辑器之类的更改。
  • 在你的应用中创建一个很酷的小部件, 以向用户显示电池状态。
让我们开始吧 !
检查可用性 要检查浏览器中是否提供了电池API, 请使用以下任何if语句:
if(typeof(navigator.getBattery) != "undefined"){console.log("Available"); }// Orif("getBattery" in navigator){console.log("Available"); }

尽管Battery API并不是相对较新,
JavaScript Battery API简介 资料来源:我可以使用。
而且不, 此API没有可用的polyfill, 你如何对需要访问硬件的东西进行polyfill?
你需要了解的所有关于API的信息 要使用Battery API, 请使用以下代码段:
navigator.getBattery().then(function(battery){console.log(battery.charging); // Booleanconsole.log(battery.chargingTime); // Infinityconsole.log(battery.dischargingTime); // Infinityconsole.log(battery.level ); // Float (0 to 1)});

Battery API返回一个本机Promise, 这意味着这是一个异步方法(在此处了解有关javascript promise的更多信息)。
Battery API提供有关系统电池电量水平的信息, 并让你在电池电量水平或充电状态更改后发送的事件通知你。
  • 充电属性表示系统电池的充电状态。
  • ChargeTime属性表示系统电池充满电之前剩余的时间(以秒为单位)。
  • dischargeTime属性表示以秒为单位的时间, 直到系统电池完全放电并且系统将要挂起为止
  • 级别属性表示系统电池的级别。
该API另外提供4个事件以检查属性何时更改。
事件处理程序 事件处理程序事件类型
充电变化 收费变化
充电时间变化 充电时间变化
放电时间变化 放电时间变化
等级变化 水平变化
你可以使用轻松添加侦听器:
navigator.getBattery().then(function(battery){battery.onlevelchange = function(){alert("The battery level has changed"); }; // Orbattery.addEventListener("levelchange", function(){alert("The battery level has changed"); }, false); });

如何检查你是否使用台式计算机
尽管这没有任何意义, 但台式机也可以使用电池API, 并且无法知道用户使用的是笔记本电脑还是台式机, 但是可以使用以下代码片段进行” 设置” 。
你可以检查是否正在使用台式计算机, 检查dischargeTime属性是否是有限的, 并检查chargeing属性是否设置为true。
navigator.getBattery().then(function(battery){var desktopOrLaptopConnectedInfo = function(_battery){if((_battery.charging === true) & & !isFinite(_battery.dischargingTime)){console.log("Desktop detected"); }// or//if((data.charging === true) & & (data.dischargingTime == Infinity)){//console.log("Desktop detected"); //}}; // And you may want to check when again if is a laptop and the// charging property changesbattery.addEventListener('chargingchange', function(){desktopOrLaptopConnectedInfo(battery); }); });

可惜的是, 如果用户使用笔记本电脑并断开了充电器的连接, 则该假设将失败, 并且你需要添加chargerchange侦听器以再次检查。
注意:你可以在if语句中检查level属性等于1(这表示” 电池” 已充满电), 以提高准确性, 因为属性ChargeTime和dischargeTime始终等于Infinity。

    推荐阅读