本文概述
- 检查可用性
- 你需要了解的所有关于API的信息
【JavaScript Battery API简介】?在编写Web应用程序时, 你是否关心电池的任务?请在评论框中与社区分享你的答案。在许多情况下, 此API可能有用:
- 这可用于调整应用程序的资源使用情况, 以减少电池电量不足时的电池消耗。
- 为了防止数据丢失, 请在电池用完之前保存诸如编辑器之类的更改。
- 在你的应用中创建一个很酷的小部件, 以向用户显示电池状态。
检查可用性 要检查浏览器中是否提供了电池API, 请使用以下任何if语句:
if(typeof(navigator.getBattery) != "undefined"){console.log("Available");
}// Orif("getBattery" in navigator){console.log("Available");
}
尽管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属性表示以秒为单位的时间, 直到系统电池完全放电并且系统将要挂起为止
- 级别属性表示系统电池的级别。
事件处理程序 | 事件处理程序事件类型 |
---|---|
充电变化 | 收费变化 |
充电时间变化 | 充电时间变化 |
放电时间变化 | 放电时间变化 |
等级变化 | 水平变化 |
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。
推荐阅读
- 如何在Ubuntu Server中为Gitlab私有存储库创建和配置部署SSH密钥
- 如何在浏览器(无服务器)中创建文件并使用JavaScript生成下载
- 你可能想开始在项目中应用的10个有用的javascript提示和实践
- 如何使用JavaScript在单击或鼠标事件中从画布获取像素颜色
- JavaScript按位NOT,?运算符
- 如何验证何时在JavaScript中加载了多个图像
- 画布已被跨源数据污染,污染的画布可能无法导出
- 使用“一键清理”功能要防止删除WORD文档
- 图解Web前端实现类似Excel的电子表格