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 |