如何在Javascript中获取设备电池电量

8

我的应用程序每15秒进行一次网络调用,如果用户的设备电池电量低于20%,则我想将调用间隔更改为30秒。如何获取用户设备的当前电池电量?这可能吗?任何帮助将不胜感激。


兄弟,我不知道这件事到现在是否完成了,但是我受到了你的启发,看到了你的努力和考虑。真的很感激。 - geminiousgoel
我给你点赞。+1 并将其加入我的收藏夹。 - geminiousgoel
我觉得我在这里找到了一些东西,但是像Opera这样的许多现代浏览器都不支持电池API:https://www.sitepoint.com/html5-battery-status-api/ - KingCoder11
看起来我的答案在火狐浏览器的Mac版本上不起作用,所以我把它删除了。 - KingCoder11
在我看来似乎也是这样。 - KingCoder11
显示剩余3条评论
1个回答

5
请看电池状态 API。它并不适用于所有浏览器,但至少是一个开端。
对于支持该 API 的浏览器,以下代码应该可行:

navigator.getBattery().then(function(battery) {
  battery.addEventListener('levelchange', function() {    
    // Do stuff when the level changes, you can get it
    // from battery.level
    document.write((battery.level*100)+"%");
  })
  document.write((battery.level*100)+"%");
});


IE支持它吗?微软Edge浏览器支持它吗? - KingCoder11
@KingCoder11 这里有答案的链接... ;) - Andreas
@Andreas,抱歉,我没看到,我的错。 - KingCoder11
看起来IE、Safari、Edge和Android都不支持。 - KingCoder11
请注意,即使在支持此 API 的浏览器中,也可能并不简单。例如,从 Firefox 52 开始,电池状态 API 仅在 chrome/privileged 代码(换句话说,“附加组件”)中可用。 - Jaromanda X

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接