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

Is it possible to access a mobile devices battery status or charge via a web browser api?

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

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

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

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

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

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

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

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

谢谢 Tapani 和 Michael,

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

  • Chrome42.0.2311.90(64位)好像不支持电池API.
  • Chromium Version 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) 但不支持 navigator.battery 命名空间。
  • Firefox 支持 navigator.battery 命名空间,但不支持 navigator.getBattery() 函数。
  • Safari 版本 8.0.5 (10600.5.17) 不支持任何与电池有关的内容 api,据我所知。

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

谢谢大家!

我已经为您创建了一个演示,因此您可以检查您的浏览器是否支持电池 API。

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

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