此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

Battery Status API

Limited availability

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

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

Battery Status API,通常被称为 Battery API,提供有关系统电池电量水平的信息,并让你在电池电量或充电状态发生变化时收到触发的事件通知。这可用于调整应用程序的资源使用情况,以在电池电量不足时减少电池消耗,或在电池电量耗尽之前保存更改以防止数据丢失。

备注:此 API 在 Web Worker不可用(未通过 WorkerNavigator 暴露)。

接口

BatteryManager

提供有关系统电池电量的信息。

其他接口的扩展

返回一个兑现一个 BatteryManager 对象的 Promise

示例

在此示例中,我们观察充电状态的变化(无论是否插入电源并充电)以及电池电量和时间的变化。这通过监听 chargingchangelevelchangechargingtimechangedischargingtimechange 事件完成。

js
navigator.getBattery().then((battery) => {
  function updateAllBatteryInfo() {
    updateChargeInfo();
    updateLevelInfo();
    updateChargingInfo();
    updateDischargingInfo();
  }
  updateAllBatteryInfo();

  battery.addEventListener("chargingchange", () => {
    updateChargeInfo();
  });
  function updateChargeInfo() {
    console.log(`电池是否充电中?${battery.charging ? "是" : "否"}`);
  }

  battery.addEventListener("levelchange", () => {
    updateLevelInfo();
  });
  function updateLevelInfo() {
    console.log(`电池电量:${battery.level * 100}%`);
  }

  battery.addEventListener("chargingtimechange", () => {
    updateChargingInfo();
  });
  function updateChargingInfo() {
    console.log(`电池充电时间:${battery.chargingTime}秒`);
  }

  battery.addEventListener("dischargingtimechange", () => {
    updateDischargingInfo();
  });
  function updateDischargingInfo() {
    console.log(`电池续航时间:${battery.dischargingTime}秒`);
  }
});

参见规范中的示例

规范

Specification
Battery Status API

浏览器兼容性

api.BatteryManager

api.Navigator.getBattery

参见