Battery Status API

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

電池狀態 API,更常被稱為電池 API,提供了有關係統電池電量的資訊,並允許您透過事件接收通知,這些事件在電池電量或充電狀態發生變化時傳送。這可用於在電池電量低時調整應用的資源使用以減少電池消耗,或在電池耗盡前儲存更改以防止資料丟失。

注意: 此 API 在 Web Workers不可用(未透過 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`);
  }
});

另請參閱 規範中的示例

規範

規範
Battery Status API

瀏覽器相容性

api.BatteryManager

api.Navigator.getBattery

另見