Battery Status API
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Battery Status API,更常被稱為 Battery API,提供有關系統電池充電狀態的資訊,並允許你透過事件通知來得知電池電量或充電狀態的變化。這可以用來調整應用程式的資源使用,以在電池電量低時減少耗電,或者在電池耗盡前儲存變更以防止資料遺失。
備註:
此 API 無法在 Web Worker 中使用(不會透過 WorkerNavigator 暴露)。
介面
- BatteryManager
- 
提供有關系統電池充電狀態的資訊。 
擴展至其他介面
- 
返回一個 Promise,其會兌現為一個BatteryManager物件。
範例
在此範例中,我們監聽充電狀態(是否插電充電中)以及電池電量和時間的變化。這是透過監聽 chargingchange、levelchange、chargingtimechange 和 dischargingtimechange 事件來完成的。
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
Loading…
api.Navigator.getBattery
Loading…