Navigator:getBattery() 方法

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

安全上下文: 此项功能仅在一些支持的浏览器安全上下文(HTTPS)中可用。

getBattery() 方法提供了系统的电池信息,它返回一个包含电池对象的 promise 对象,兑现一个 BatteryManager 对象,它提供了一些新的属性和事件来获取与监控电池状态。这个方法实现了 Battery Status API,参见那篇文档以获得更多额外的细节、使用 API 的指引和示例代码。

自 Chrome 103 起,Battery Status APINavigator.getBattery() 方法只在严格上下文中暴露。

备注: 对该特性的访问可由 Permissions-Policybattery 指令控制。

语法

js
getBattery()

参数

无。

返回值

一个 Promise,兑现一个可用于获取电池状态信息的 BatteryManager 对象。

异常

NotAllowedError DOMException

对该特性的使用被权限策略阻止。

SecurityError

用户代理不会向不安全上下文暴露电池信息,而此方法在不安全的上下文中被调用了。

示例

此示例获取了电池当前充电的状态,并建立了 chargingchange 事件的处理器,因此当充电状态发生变化时,其状态会被记录下来。

js
let batteryIsCharging = false;

navigator.getBattery().then((battery) => {
  batteryIsCharging = battery.charging;

  battery.addEventListener("chargingchange", () => {
    batteryIsCharging = battery.charging;
  });
});

对于更多示例与具体信息,参见 Battery Status API

规范

Specification
Battery Status API
# dom-navigator-getbattery

浏览器兼容性

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
getBattery
Secure context required
Experimental

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
Experimental. Expect behavior to change in the future.

参见