此頁面由社群從英文翻譯而來。了解更多並加入 MDN Web Docs 社群。

View in English Always switch to English

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 物件。

範例

在此範例中,我們監聽充電狀態(是否插電充電中)以及電池電量和時間的變化。這是透過監聽 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

參見