HTML5的一個(gè)顯示電池狀態(tài)的API簡(jiǎn)介
來(lái)源:易賢網(wǎng) 閱讀:1676 次 日期:2016-07-09 10:59:44
溫馨提示:易賢網(wǎng)小編為您整理了“HTML5的一個(gè)顯示電池狀態(tài)的API簡(jiǎn)介”,方便廣大網(wǎng)友查閱!

這篇文章主要介紹了HTML5的一個(gè)顯示電池狀態(tài)的API簡(jiǎn)介,由Mozilla設(shè)計(jì),具體的設(shè)備和瀏覽器支持情況還要通過(guò)檢測(cè)才能確定,需要的朋友可以參考下

移動(dòng)設(shè)備的份額在網(wǎng)絡(luò)流量中在大量增長(zhǎng),其所貢獻(xiàn)的網(wǎng)絡(luò)流量非常龐大,以至于為了移動(dòng)設(shè)備,我們單獨(dú)創(chuàng)建了一些API和設(shè)計(jì)理念。一個(gè)非常典型的例子是 W3C電池狀態(tài)API,它允許一個(gè)應(yīng)用程序獲知設(shè)備的電池狀態(tài)信息。這篇文章探索了這個(gè)新的API,為你展示了如何把它整合進(jìn)你現(xiàn)有的應(yīng)用程序。 

檢測(cè)設(shè)備是否支持

目前電池API依舊沒(méi)有得到主流支持。因此,在使用這個(gè)API前需要確認(rèn)當(dāng)前設(shè)備是否支持此API。下面展示的函數(shù)返回一個(gè)布恩值(True/False),指示當(dāng)前瀏覽器是否支持電池狀態(tài)API。

該函數(shù)首先檢測(cè)了 navigator.battery 對(duì)象是否存在。如果不存在,繼續(xù)檢測(cè) Mozilla 專用的

navigator.mozBattery是否存在。我曾經(jīng)見(jiàn)過(guò)有些代碼還檢測(cè)了 webkitBattery對(duì)象,但是我無(wú)法證實(shí)其在Chrome中是否存在。

參考文檔:https://developer.mozilla.org/en-US/docs/DOM/window.navigator.battery

XML/HTML Code

functionisBatteryStatusSupported() {   

  return!!(navigator.battery || navigator.mozBattery);   

}  

檢查電池

如果電池對(duì)象存在,它會(huì)包含下列四個(gè)只讀屬性。

charging —— (布恩值)指示系統(tǒng)的電池當(dāng)前是否正在充電。

如果系統(tǒng)不存在電池,或無(wú)法確定電池是否在充電,返回值是 True

chargingTime —— (數(shù)值)電池完全充滿電量所需的時(shí)間(單位:秒)

當(dāng)電池完全被充滿電時(shí),或者系統(tǒng)不存在電池時(shí),這個(gè)值為0。

如果系統(tǒng)不在充電,或者無(wú)法確定完全充滿電所需時(shí)間,這個(gè)值為∞(無(wú)窮大)。

dischargingTime —— 和chargingTime相似,(數(shù)值)到電池完全放電直到系統(tǒng)休眠剩余的時(shí)間(單位:秒)

如果放電時(shí)間無(wú)法確定,或 系統(tǒng)沒(méi)有電池 或 系統(tǒng)正在充電,這個(gè)值為 ∞ (無(wú)窮大)

level —— (數(shù)值) 設(shè)備當(dāng)前電量等級(jí)。取值在(0 ~ 1.0)區(qū)間,與剩余電量百分比對(duì)應(yīng)。

1.0表示電池完全充滿電,或者不存在電池,或者數(shù)值無(wú)法確定。

檢測(cè)電池事件

上述所有屬性都與一個(gè)電池事件綁定。這些事件用來(lái)指示電池狀態(tài)的變化。比如,插入電源會(huì)使charging屬性從false變?yōu)閠rue。全部四種電池事件如下所列:

chargingchange —— 這個(gè)類(lèi)型的事件會(huì)在charging屬性改變時(shí)觸發(fā)。這個(gè)事件可以被 onchargingchange()事件處理器捕獲和處理。

chargingtimechange —— 這個(gè)類(lèi)型的事件會(huì)在chargingtime屬性改變時(shí)觸發(fā)。這個(gè)事件可以被 onchargingtimechange()事件處理器捕獲和處理。

dischargingtimechange —— 這個(gè)類(lèi)型的事件會(huì)在dischargingTime屬性改變時(shí)觸發(fā)。這個(gè)事件可以被 ondischargingtimechange()事件處理器捕獲和處理。

levelchange —— 這個(gè)類(lèi)型的事件會(huì)在level屬性改變時(shí)觸發(fā)。這個(gè)事件可以被 onlevelchange()事件處理器捕獲和處理。

示例頁(yè)面

下面的代碼展示了如何使用 電池狀態(tài)API 的屬性和事件。

示例頁(yè)面顯示了API的各個(gè)屬性值,并且在事件觸發(fā)時(shí)更新它們的值。

點(diǎn)擊此處訪問(wèn)在線示例。

XML/HTML Code

<!DOCTYPE html>  

<htmllanghtmllang="en">  

<head>  

  <title>The Battery Status API - Example</title>  

  <metacharsetmetacharset="UTF-8"/>  

  <script>  

    window.addEventListener("load", function() {   

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

      function displayBatteryStats() {   

        document.getElementById("charging").textContent = (battery.charging) ? "charging" : "not charging";   

        document.getElementById("chargingtime").textContent = battery.chargingTime;   

        document.getElementById("dischargingtime").textContent = battery.dischargingTime;   

        document.getElementById("level").textContent = battery.level * 100;   

      }   

      if (battery) {   

        displayBatteryStats();   

        battery.addEventListener("chargingchange", displayBatteryStats, false);   

        battery.addEventListener("chargingtimechange", displayBatteryStats, false);   

        battery.addEventListener("dischargingtimechange", displayBatteryStats, false);   

        battery.addEventListener("levelchange", displayBatteryStats, false);   

      } else {   

        document.getElementById("stats").textContent = "Sorry, your browser does not support the Battery Status API";   

      }   

    }, false);   

  </script>  

</head>  

<body>  

  <dividdivid="stats">  

    Your battery is currently <spanidspanid="charging"></span>.<br/>  

    Your battery will be charged in <spanidspanid="chargingtime"></span> seconds.<br/>  

    Your battery will be discharged in <spanidspanid="dischargingtime"></span> seconds.<br/>  

    Your battery level is <spanidspanid="level"></span>%.   

  </div>  

</body>  

</html>  

結(jié)論:

本文為Battery Status API給出了一個(gè)完整的總結(jié)和展示,盡管其仍未得到主流支持,但是這只是時(shí)間問(wèn)題??紤]到移動(dòng)互聯(lián)網(wǎng)的激增,開(kāi)發(fā)者應(yīng)該盡快將電池信息納入設(shè)計(jì)范疇內(nèi)。 

更多信息請(qǐng)查看網(wǎng)頁(yè)制作
易賢網(wǎng)手機(jī)網(wǎng)站地址:HTML5的一個(gè)顯示電池狀態(tài)的API簡(jiǎn)介
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門(mén)公布的正式信息和咨詢?yōu)闇?zhǔn)!
相關(guān)閱讀網(wǎng)頁(yè)制作

2025國(guó)考·省考課程試聽(tīng)報(bào)名

  • 報(bào)班類(lèi)型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)