使用JavaScript獲取電池狀態(tài)的方法
從Mozilla Aurora 11起,火狐瀏覽器里實(shí)現(xiàn)了一些新功能,其中一個就是對電池狀態(tài)接口的基本實(shí)現(xiàn)。這個很簡單的接口能提供你關(guān)于電池當(dāng)前電量,是否在充電等信息,以及一些電池狀態(tài)變化事件。讓我們來看看效果!
電池對象是存放在window.navigator.battery里,但因?yàn)檫@是火狐瀏覽器首次實(shí)現(xiàn)并提供這個接口,并未普及,你需要使用window.navigator.mozBattery這種寫法。這個mozBattery對象有下列屬性:
1.charging: 表示當(dāng)前電池設(shè)備是否在充電。如果電池沒有充電,這個值為false。如果為true,表明電池正在充電。當(dāng)前的API實(shí)現(xiàn)里不能得到是否充滿的信息,也無法判斷當(dāng)前設(shè)備是否有電池。
2.chargingTime: 是指距離電池充滿還需要多久。
3.dischargingTime: 電池已使用時間。
4.level: 表示電量等級,從0到1.0。當(dāng)這個值為0時,表示電量耗盡,系統(tǒng)即將關(guān)機(jī)。如果為1.0,則表示電池滿電。
針對這些狀態(tài),接口里提供了各自相應(yīng)的事件,包括onchargingchange, onchargingtimechange, ondischargingtimechange, 和 onlevelchange?;镜挠梅ê芎唵危?BR>
// 獲取電池對象!
var battery = navigator.battery || navigator.webkitBattery || navigator.mozBattery;
// 顯示一些有用屬性值
console.warn("電池充電狀態(tài): ", battery.charging); // true
console.warn("電量水平: ", battery.level); // 0.58
console.warn("電池使用時間: ", battery.dischargingTime);
// 設(shè)置一些事件監(jiān)聽器
battery.addEventListener("chargingchange", function(e) {
console.warn("電池充電狀態(tài)變化: ", battery.charging);
}, false);
battery.addEventListener("chargingtimechange", function(e) {
console.warn("電池充電時間變化: ", battery.chargingTime);
}, false);
battery.addEventListener("dischargingtimechange", function(e) {
console.warn("電池使用時間變化: ", battery.dischargingTime);
}, false);
battery.addEventListener("levelchange", function(e) {
console.warn("電量水平變化: ", battery.level);
}, false);
很簡單,不是嗎?這幾個接口都非常的棒:簡單,高效,實(shí)用!
為什么要使用這些電池編程接口?因?yàn)楹芏嘤脼g覽器封裝的移動應(yīng)用(非‘native')需要知道系統(tǒng)的當(dāng)前狀態(tài)。有些CPU對電量很敏感,在處理某些特殊任務(wù)前要設(shè)備有足夠的電量,App應(yīng)事先提醒用戶電量不足,請充電。
相關(guān)文章
在頁面上點(diǎn)擊任一鏈接時觸發(fā)一個事件的代碼
在頁面上點(diǎn)擊任一鏈接時觸發(fā)一個事件的代碼...2007-04-04elementui的select實(shí)現(xiàn)多選添加功能
這篇文章主要介紹了elementui的select實(shí)現(xiàn)多選添加功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03TypeScript開發(fā)中規(guī)范編碼來提高代碼的可讀性
在TypeScript中,我們通過使用類型別名reference指令、類型守衛(wèi)、泛型、接口、類型別名等來提高代碼的可維護(hù)性以及可讀性,這篇文章主要介紹了TypeScript開發(fā)中規(guī)范編碼來提高代碼的可讀性,需要的朋友可以參考下2023-12-12原生javascript自定義input[type=radio]效果示例
這篇文章主要介紹了原生javascript自定義input[type=radio]效果,結(jié)合實(shí)例形式分析了javascript模擬form表單中radio效果的相關(guān)操作技巧,需要的朋友可以參考下2019-08-08JavaScript下一版本標(biāo)準(zhǔn)ES6的Set集合使用詳解
ES6:全稱ECMAScript 6.0,是JavaScript語言的國際標(biāo)準(zhǔn),JavaScript是ECMAScript的實(shí)現(xiàn)。今天我們就來學(xué)習(xí)一下ES6的Set集合的使用2023-02-02