电池状态 API

安全上下文: 此功能仅在安全上下文 (HTTPS) 中可用,在部分或所有支持的浏览器 中可用。

电池状态 API(通常称为电池 API)提供有关系统电池电量的信息,并允许您通过在电池电量或充电状态发生变化时发送的事件来接收通知。这可以用于调整应用程序的资源使用情况,以在电池电量不足时减少电池消耗,或者在电池耗尽之前保存更改,以防止数据丢失。

注意: 此 API不可用Web 工作线程(未通过WorkerNavigator 公开)。

接口

BatteryManager

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

对其他接口的扩展

返回一个Promise,该对象将解析为一个BatteryManager 对象。

示例

在此示例中,我们同时监听充电状态(是否已插入电源并正在充电)和电池电量和时间的变化。这是通过监听chargingchangelevelchangechargingtimechangedischargingtimechange 事件来实现的。

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

  battery.addEventListener("chargingchange", () => {
    updateChargeInfo();
  });
  function updateChargeInfo() {
    console.log(`Battery charging? ${battery.charging ? "Yes" : "No"}`);
  }

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

  battery.addEventListener("chargingtimechange", () => {
    updateChargingInfo();
  });
  function updateChargingInfo() {
    console.log(`Battery charging time: ${battery.chargingTime} seconds`);
  }

  battery.addEventListener("dischargingtimechange", () => {
    updateDischargingInfo();
  });
  function updateDischargingInfo() {
    console.log(`Battery discharging time: ${battery.dischargingTime} seconds`);
  }
});

另请参阅规范中的示例

规范

规范
电池状态 API

浏览器兼容性

api.BatteryManager

BCD 表格仅在浏览器中加载

api.Navigator.getBattery

BCD 表格仅在浏览器中加载

另请参阅