Battery Status API

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Battery Status API, thường được gọi là Battery API, cung cấp thông tin về mức sạc pin của hệ thống và cho phép bạn nhận thông báo qua các sự kiện được gửi khi mức pin hoặc trạng thái sạc thay đổi. Bạn có thể dùng API này để điều chỉnh mức sử dụng tài nguyên của ứng dụng nhằm giảm tiêu hao pin khi pin yếu, hoặc lưu các thay đổi trước khi pin cạn để tránh mất dữ liệu.

Note: API này không khả dụng trong Web Workers (không được phơi bày qua WorkerNavigator).

Giao diện

BatteryManager

Cung cấp thông tin về mức sạc pin của hệ thống.

Mở rộng cho các giao diện khác

Trả về một Promise được giải quyết với một đối tượng BatteryManager.

Ví dụ

Trong ví dụ này, chúng ta theo dõi các thay đổi cả về trạng thái sạc (thiết bị có đang cắm điện và sạc hay không) lẫn mức pin và thời gian. Việc này được thực hiện bằng cách lắng nghe các sự kiện chargingchange, levelchange, chargingtimechangedischargingtimechange.

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`);
  }
});

Xem thêm ví dụ trong đặc tả.

Thông số kỹ thuật

Specification
Battery Status API

Tương thích trình duyệt

api.BatteryManager

api.Navigator.getBattery

Xem thêm