Battery Status API

Battery Status API 也就是所謂的 Battery API,將提供系統電池充電容量的資訊,並在電池容量變化時送出事件,以通知使用者。此 API 可調整 Apps 的資源耗用量,在電力偏低時縮減耗電量;或可在電力耗盡之前儲存檔案,避免資料遺失。

Battery Status API 是以 window.navigator.battery 屬性 (為 BatteryManager 物件) 而擴充了 window.navigator,並新增數項可讓使用者接收的新事件,以隨時監控電池狀態。

範例

在此範例中,我們將分別監聽 chargingchangelevelchange 事件,而看到充電狀態 (不論是否插電進行充電) 與電池容量的變化。

var battery = navigator.battery || navigator.mozBattery || navigator.webkitBattery;

function updateBatteryStatus() {
  console.log("Battery status: " + battery.level * 100 + " %");

  if (battery.charging) {
    console.log("Battery is charging"); 
  }
}

battery.addEventListener("chargingchange", updateBatteryStatus);
battery.addEventListener("levelchange", updateBatteryStatus);
updateBatteryStatus();

另可參閱規格所提供之範例

規格

Specification Status Comment
Battery Status API Candidate Recommendation Initial definition

瀏覽器相容性

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
Basic support
Deprecated
Chrome Full support 38Edge ? Firefox No support 16 — 52
No support 16 — 52
No support 10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
Full support 52
Notes Disabled
Notes Disabled by default in Firefox 10, but can be enabled setting the preference dom.battery.enabled to true. Starting with Firefox 11, mozBattery is enabled by default. The Battery API is currently supported on Android, Windows, and Linux with UPower installed. Support for MacOS is available starting with Firefox 18. Firefox also provide support for the deprecated navigator.battery.
Disabled From version 52: this feature is behind the dom.battery.enabled preference. To change preferences in Firefox, visit about:config.
Full support 52
Notes
Notes From this version onwards, the Battery Status API is only available in chrome/privileged code.
IE No support NoOpera Full support 25Safari No support NoWebView Android Full support 40Chrome Android Full support 38
Notes
Full support 38
Notes
Notes Values for BatteryManager.chargingTime and BatteryManager.dischargingTime are always equal to Infinity.
Edge Mobile No support NoFirefox Android No support 10 — 16
Prefixed
No support 10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
No support 16 — 52
Notes Disabled
Notes Disabled by default in Firefox 10.0, but can be enabled setting the preference dom.battery.enabled to true. Starting with Firefox 11.0, mozBattery is enabled by default. The Battery API is currently supported on Android, Windows, and Linux with UPower installed. Support for MacOS is available starting with Gecko 18.0 (Firefox 18.0 / Thunderbird 18.0 / SeaMonkey 2.15). Firefox also provide support for the deprecated navigator.battery.
Disabled From version 16 until version 52 (exclusive): this feature is behind the dom.battery.enabled preference. To change preferences in Firefox, visit about:config.
Full support 52
Notes
Notes From this version onwards, the Battery Status API is only available in chrome/privileged code.
Opera Android Full support 25Safari iOS No support ? — ?Samsung Internet Android Full support Yes
charging
Deprecated
Chrome Full support 38Edge ? Firefox No support 16 — 52
No support 16 — 52
No support 10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
Full support 52
Notes Disabled
Notes Disabled by default in Firefox 10, but can be enabled setting the preference dom.battery.enabled to true. Starting with Firefox 11, mozBattery is enabled by default. The Battery API is currently supported on Android, Windows, and Linux with UPower installed. Support for MacOS is available starting with Firefox 18. Firefox also provide support for the deprecated navigator.battery.
Disabled From version 52: this feature is behind the dom.battery.enabled preference. To change preferences in Firefox, visit about:config.
Full support 52
Notes
Notes From this version onwards, the Battery Status API is only available in chrome/privileged code.
IE No support NoOpera Full support 25Safari No support NoWebView Android Full support 40Chrome Android Full support 38
Notes
Full support 38
Notes
Notes Values for BatteryManager.chargingTime and BatteryManager.dischargingTime are always equal to Infinity.
Edge Mobile No support NoFirefox Android No support 10 — 16
Prefixed
No support 10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
No support 16 — 52
Notes Disabled
Notes Disabled by default in Firefox 10.0, but can be enabled setting the preference dom.battery.enabled to true. Starting with Firefox 11.0, mozBattery is enabled by default. The Battery API is currently supported on Android, Windows, and Linux with UPower installed. Support for MacOS is available starting with Gecko 18.0 (Firefox 18.0 / Thunderbird 18.0 / SeaMonkey 2.15). Firefox also provide support for the deprecated navigator.battery.
Disabled From version 16 until version 52 (exclusive): this feature is behind the dom.battery.enabled preference. To change preferences in Firefox, visit about:config.
Full support 52
Notes
Notes From this version onwards, the Battery Status API is only available in chrome/privileged code.
Opera Android Full support 25Safari iOS No support ? — ?Samsung Internet Android Full support Yes
chargingTime
Deprecated
Chrome Full support 38Edge ? Firefox No support 16 — 52
No support 16 — 52
No support 10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
Full support 52
Notes Disabled
Notes Disabled by default in Firefox 10, but can be enabled setting the preference dom.battery.enabled to true. Starting with Firefox 11, mozBattery is enabled by default. The Battery API is currently supported on Android, Windows, and Linux with UPower installed. Support for MacOS is available starting with Firefox 18. Firefox also provide support for the deprecated navigator.battery.
Disabled From version 52: this feature is behind the dom.battery.enabled preference. To change preferences in Firefox, visit about:config.
Full support 52
Notes
Notes From this version onwards, the Battery Status API is only available in chrome/privileged code.
IE No support NoOpera Full support 25Safari No support NoWebView Android Full support 40Chrome Android Full support 38
Notes
Full support 38
Notes
Notes Values for BatteryManager.chargingTime and BatteryManager.dischargingTime are always equal to Infinity.
Edge Mobile No support NoFirefox Android No support 10 — 16
Prefixed
No support 10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
No support 16 — 52
Notes Disabled
Notes Disabled by default in Firefox 10.0, but can be enabled setting the preference dom.battery.enabled to true. Starting with Firefox 11.0, mozBattery is enabled by default. The Battery API is currently supported on Android, Windows, and Linux with UPower installed. Support for MacOS is available starting with Gecko 18.0 (Firefox 18.0 / Thunderbird 18.0 / SeaMonkey 2.15). Firefox also provide support for the deprecated navigator.battery.
Disabled From version 16 until version 52 (exclusive): this feature is behind the dom.battery.enabled preference. To change preferences in Firefox, visit about:config.
Full support 52
Notes
Notes From this version onwards, the Battery Status API is only available in chrome/privileged code.
Opera Android Full support 25Safari iOS No support ? — ?Samsung Internet Android Full support Yes
dischargingTime
Deprecated
Chrome Full support 38Edge ? Firefox No support 16 — 52
No support 16 — 52
No support 10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
Full support 52
Notes Disabled
Notes Disabled by default in Firefox 10, but can be enabled setting the preference dom.battery.enabled to true. Starting with Firefox 11, mozBattery is enabled by default. The Battery API is currently supported on Android, Windows, and Linux with UPower installed. Support for MacOS is available starting with Firefox 18. Firefox also provide support for the deprecated navigator.battery.
Disabled From version 52: this feature is behind the dom.battery.enabled preference. To change preferences in Firefox, visit about:config.
Full support 52
Notes
Notes From this version onwards, the Battery Status API is only available in chrome/privileged code.
IE No support NoOpera Full support 25Safari No support NoWebView Android Full support 40Chrome Android Full support 38
Notes
Full support 38
Notes
Notes Values for BatteryManager.chargingTime and BatteryManager.dischargingTime are always equal to Infinity.
Edge Mobile No support NoFirefox Android No support 10 — 16
Prefixed
No support 10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
No support 16 — 52
Notes Disabled
Notes Disabled by default in Firefox 10.0, but can be enabled setting the preference dom.battery.enabled to true. Starting with Firefox 11.0, mozBattery is enabled by default. The Battery API is currently supported on Android, Windows, and Linux with UPower installed. Support for MacOS is available starting with Gecko 18.0 (Firefox 18.0 / Thunderbird 18.0 / SeaMonkey 2.15). Firefox also provide support for the deprecated navigator.battery.
Disabled From version 16 until version 52 (exclusive): this feature is behind the dom.battery.enabled preference. To change preferences in Firefox, visit about:config.
Full support 52
Notes
Notes From this version onwards, the Battery Status API is only available in chrome/privileged code.
Opera Android Full support 25Safari iOS No support ? — ?Samsung Internet Android Full support Yes
level
Deprecated
Chrome Full support 38Edge ? Firefox No support 16 — 52
No support 16 — 52
No support 10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
Full support 52
Notes Disabled
Notes Disabled by default in Firefox 10, but can be enabled setting the preference dom.battery.enabled to true. Starting with Firefox 11, mozBattery is enabled by default. The Battery API is currently supported on Android, Windows, and Linux with UPower installed. Support for MacOS is available starting with Firefox 18. Firefox also provide support for the deprecated navigator.battery.
Disabled From version 52: this feature is behind the dom.battery.enabled preference. To change preferences in Firefox, visit about:config.
Full support 52
Notes
Notes From this version onwards, the Battery Status API is only available in chrome/privileged code.
IE No support NoOpera Full support 25Safari No support NoWebView Android Full support 40Chrome Android Full support 38
Notes
Full support 38
Notes
Notes Values for BatteryManager.chargingTime and BatteryManager.dischargingTime are always equal to Infinity.
Edge Mobile No support NoFirefox Android No support 10 — 16
Prefixed
No support 10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
No support 16 — 52
Notes Disabled
Notes Disabled by default in Firefox 10.0, but can be enabled setting the preference dom.battery.enabled to true. Starting with Firefox 11.0, mozBattery is enabled by default. The Battery API is currently supported on Android, Windows, and Linux with UPower installed. Support for MacOS is available starting with Gecko 18.0 (Firefox 18.0 / Thunderbird 18.0 / SeaMonkey 2.15). Firefox also provide support for the deprecated navigator.battery.
Disabled From version 16 until version 52 (exclusive): this feature is behind the dom.battery.enabled preference. To change preferences in Firefox, visit about:config.
Full support 52
Notes
Notes From this version onwards, the Battery Status API is only available in chrome/privileged code.
Opera Android Full support 25Safari iOS No support ? — ?Samsung Internet Android Full support Yes
onchargingchange
Deprecated
Chrome Full support 38Edge ? Firefox No support 16 — 52
No support 16 — 52
No support 10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
Full support 52
Notes Disabled
Notes Disabled by default in Firefox 10, but can be enabled setting the preference dom.battery.enabled to true. Starting with Firefox 11, mozBattery is enabled by default. The Battery API is currently supported on Android, Windows, and Linux with UPower installed. Support for MacOS is available starting with Firefox 18. Firefox also provide support for the deprecated navigator.battery.
Disabled From version 52: this feature is behind the dom.battery.enabled preference. To change preferences in Firefox, visit about:config.
Full support 52
Notes
Notes From this version onwards, the Battery Status API is only available in chrome/privileged code.
IE No support NoOpera Full support 25Safari No support NoWebView Android Full support 40Chrome Android Full support 38
Notes
Full support 38
Notes
Notes Values for BatteryManager.chargingTime and BatteryManager.dischargingTime are always equal to Infinity.
Edge Mobile No support NoFirefox Android No support 10 — 16
Prefixed
No support 10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
No support 16 — 52
Notes Disabled
Notes Disabled by default in Firefox 10.0, but can be enabled setting the preference dom.battery.enabled to true. Starting with Firefox 11.0, mozBattery is enabled by default. The Battery API is currently supported on Android, Windows, and Linux with UPower installed. Support for MacOS is available starting with Gecko 18.0 (Firefox 18.0 / Thunderbird 18.0 / SeaMonkey 2.15). Firefox also provide support for the deprecated navigator.battery.
Disabled From version 16 until version 52 (exclusive): this feature is behind the dom.battery.enabled preference. To change preferences in Firefox, visit about:config.
Full support 52
Notes
Notes From this version onwards, the Battery Status API is only available in chrome/privileged code.
Opera Android Full support 25Safari iOS No support ? — ?Samsung Internet Android Full support Yes
onchargingtimechange
Deprecated
Chrome Full support 38Edge ? Firefox No support 16 — 52
No support 16 — 52
No support 10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
Full support 52
Notes Disabled
Notes Disabled by default in Firefox 10, but can be enabled setting the preference dom.battery.enabled to true. Starting with Firefox 11, mozBattery is enabled by default. The Battery API is currently supported on Android, Windows, and Linux with UPower installed. Support for MacOS is available starting with Firefox 18. Firefox also provide support for the deprecated navigator.battery.
Disabled From version 52: this feature is behind the dom.battery.enabled preference. To change preferences in Firefox, visit about:config.
Full support 52
Notes
Notes From this version onwards, the Battery Status API is only available in chrome/privileged code.
IE No support NoOpera Full support 25Safari No support NoWebView Android Full support 40Chrome Android Full support 38
Notes
Full support 38
Notes
Notes Values for BatteryManager.chargingTime and BatteryManager.dischargingTime are always equal to Infinity.
Edge Mobile No support NoFirefox Android No support 10 — 16
Prefixed
No support 10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
No support 16 — 52
Notes Disabled
Notes Disabled by default in Firefox 10.0, but can be enabled setting the preference dom.battery.enabled to true. Starting with Firefox 11.0, mozBattery is enabled by default. The Battery API is currently supported on Android, Windows, and Linux with UPower installed. Support for MacOS is available starting with Gecko 18.0 (Firefox 18.0 / Thunderbird 18.0 / SeaMonkey 2.15). Firefox also provide support for the deprecated navigator.battery.
Disabled From version 16 until version 52 (exclusive): this feature is behind the dom.battery.enabled preference. To change preferences in Firefox, visit about:config.
Full support 52
Notes
Notes From this version onwards, the Battery Status API is only available in chrome/privileged code.
Opera Android Full support 25Safari iOS No support ? — ?Samsung Internet Android Full support Yes
ondischargingtimechange
Deprecated
Chrome Full support 38Edge ? Firefox No support 16 — 52
No support 16 — 52
No support 10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
Full support 52
Notes Disabled
Notes Disabled by default in Firefox 10, but can be enabled setting the preference dom.battery.enabled to true. Starting with Firefox 11, mozBattery is enabled by default. The Battery API is currently supported on Android, Windows, and Linux with UPower installed. Support for MacOS is available starting with Firefox 18. Firefox also provide support for the deprecated navigator.battery.
Disabled From version 52: this feature is behind the dom.battery.enabled preference. To change preferences in Firefox, visit about:config.
Full support 52
Notes
Notes From this version onwards, the Battery Status API is only available in chrome/privileged code.
IE No support NoOpera Full support 25Safari No support NoWebView Android Full support 40Chrome Android Full support 38
Notes
Full support 38
Notes
Notes Values for BatteryManager.chargingTime and BatteryManager.dischargingTime are always equal to Infinity.
Edge Mobile No support NoFirefox Android No support 10 — 16
Prefixed
No support 10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
No support 16 — 52
Notes Disabled
Notes Disabled by default in Firefox 10.0, but can be enabled setting the preference dom.battery.enabled to true. Starting with Firefox 11.0, mozBattery is enabled by default. The Battery API is currently supported on Android, Windows, and Linux with UPower installed. Support for MacOS is available starting with Gecko 18.0 (Firefox 18.0 / Thunderbird 18.0 / SeaMonkey 2.15). Firefox also provide support for the deprecated navigator.battery.
Disabled From version 16 until version 52 (exclusive): this feature is behind the dom.battery.enabled preference. To change preferences in Firefox, visit about:config.
Full support 52
Notes
Notes From this version onwards, the Battery Status API is only available in chrome/privileged code.
Opera Android Full support 25Safari iOS No support ? — ?Samsung Internet Android Full support Yes
onlevelchange
Deprecated
Chrome Full support 38Edge ? Firefox No support 16 — 52
No support 16 — 52
No support 10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
Full support 52
Notes Disabled
Notes Disabled by default in Firefox 10, but can be enabled setting the preference dom.battery.enabled to true. Starting with Firefox 11, mozBattery is enabled by default. The Battery API is currently supported on Android, Windows, and Linux with UPower installed. Support for MacOS is available starting with Firefox 18. Firefox also provide support for the deprecated navigator.battery.
Disabled From version 52: this feature is behind the dom.battery.enabled preference. To change preferences in Firefox, visit about:config.
Full support 52
Notes
Notes From this version onwards, the Battery Status API is only available in chrome/privileged code.
IE No support NoOpera Full support 25Safari No support NoWebView Android Full support 40Chrome Android Full support 38
Notes
Full support 38
Notes
Notes Values for BatteryManager.chargingTime and BatteryManager.dischargingTime are always equal to Infinity.
Edge Mobile No support NoFirefox Android No support 10 — 16
Prefixed
No support 10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
No support 16 — 52
Notes Disabled
Notes Disabled by default in Firefox 10.0, but can be enabled setting the preference dom.battery.enabled to true. Starting with Firefox 11.0, mozBattery is enabled by default. The Battery API is currently supported on Android, Windows, and Linux with UPower installed. Support for MacOS is available starting with Gecko 18.0 (Firefox 18.0 / Thunderbird 18.0 / SeaMonkey 2.15). Firefox also provide support for the deprecated navigator.battery.
Disabled From version 16 until version 52 (exclusive): this feature is behind the dom.battery.enabled preference. To change preferences in Firefox, visit about:config.
Full support 52
Notes
Notes From this version onwards, the Battery Status API is only available in chrome/privileged code.
Opera Android Full support 25Safari iOS No support ? — ?Samsung Internet Android Full support Yes

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown
Deprecated. Not for use in new websites.
Deprecated. Not for use in new websites.
See implementation notes.
See implementation notes.
User must explicitly enable this feature.
User must explicitly enable this feature.
Requires a vendor prefix or different name for use.
Requires a vendor prefix or different name for use.

另請參閱