是否可以通过网络浏览器 api 访问移动设备的电池状态或充电?

问题描述 投票:0回答:5

我花了一些时间环顾四周,看看是否可以通过网络浏览器 api 访问移动设备的电池状态或充电,但没有找到任何资源,甚至没有找到任何讨论这个主题的东西。这让我相信这是不可能的,因为它不在任何原因(安全性?)的规范中。

无论哪种方式,我都发现可以通过 iOS、Cordova、Phonegap、Appcelerator 等获取电池状态/充电百分比。所有这些都有一个 API,我可能能够开始工作,可能对我有用正在研究开发。然而,所有这些解决方案仍然需要应用程序作为本机应用程序运行——我希望能够在设备上的浏览器中运行它。

这可能吗?如果是这样,我应该研究什么浏览器 API?

javascript android ios api mobile
5个回答
4
投票

谢谢塔帕尼和迈克尔,

您的帮助无疑为我指明了正确的方向。根据您提供的信息,我能够找到有关规范以及哪些浏览器支持该 api 的更多信息。

  • Chrome 42.0.2311.90(64 位)似乎不支持电池 API。
  • Chromium 版本 22.0.1225.0 (149762) 也不支持电池 API。
  • Chrome Canary Version 44.0.2387.0 canary (64-bit) 支持 MDN 上的规范 (https://developer.mozilla.org/en-US/docs/Web/API/Battery_Status_API) 但不支持导航器。电池命名空间。
  • Firefox 支持 navigator.battery 命名空间,但不支持 navigator.getBattery() 函数。
  • Safari 版本 8.0.5 (10600.5.17) 不支持任何我能告诉的电池 api。

我没有抽出时间在移动设备上检查这个,但我不怀疑移动浏览器的 api 会更一致,甚至比上述任何浏览器都实现得更好。看起来相当新,浏览器组织仍在努力弄清楚并努力遵循文档规范。让我想起了一点 CSS flex-box。

谢谢大家!


4
投票

iOS 浏览器不支持电池状态 API。 Desktop Chrome 基本上是唯一支持它的浏览器:

http://caniuse.com/#feat=battery-status


1
投票

似乎可以。资料来源:http://www.sitepoint.com/html5-battery-status-api/

var battery = navigator.battery || navigator.webkitBattery || navigator.mozBattery || navigator.msBattery;

if (battery) {
    alert(battery.level);
}

1
投票

我已经为你创建了一个演示,所以你可以检查你的浏览器是否支持 Battery API。

演示:https://elgervanboxtel.nl/blog/#/post/battery-api

正如您在 caniuse.com 上看到的,它还没有得到广泛支持。


0
投票

2019年发布的Safari 13版本不支持Battery Status APIenter image description here

updating on 21.01.2023

© www.soinside.com 2019 - 2024. All rights reserved.