在PhoneGap中,系統通過JavaScript截獲來自於硬件的信息。目前,PhoneGap可以處理包括網絡、電量、音量、按鈕等方面的信息。說白了類似於android中的監聽事件,當一個事件發生了,系統就能做出相應的反饋。
PhoneGap的生命週期只包括應用在屏幕中運行的一部分,當應用被暫停和重新運行時有pause時間和resume時間來與它們對應。
PhoneGap的整個生命週期可以劃分成15種不同的事件,如下:
名稱 |
說明 |
---|---|
deviceready |
當設備加載完畢後會觸發該事件 |
pause |
當程序被暫停到後臺運行時會觸發該事件 |
resume |
當程序被從後臺激活到前臺運行時會觸發該事件 |
online |
當設備網絡設備改變且是從網絡斷開狀態切換到連接狀態時觸發該事件 |
offline |
當設備網絡設備改變且是從網絡連接狀態切換到斷開狀態時觸發該事件 |
batterycritical |
當設備電量過低超過某個臨界點時該事件被觸發,臨界點的值由設備決定,一般爲10% |
batterylow |
當設備剩餘電量低於某個由開發者或用戶指定的值時該事件被觸發 |
batterystatus |
當電池剩餘電量發生1%的改變時該事件被觸發 |
backbutton |
當用戶單擊“返回”按鈕時該事件被觸發 |
menubutton |
當用戶單擊“菜單”按鈕時該事件被觸發 |
startcallbutton |
當用戶“按下”通話按鈕時會觸發該事件 |
endcallbutton |
當用戶單擊“掛斷”通話按鈕時會觸發該事件 |
volumedownbutton |
當用戶按下“音量減小”按鈕時會觸發該事件 |
volumeupbutton |
當用戶按下“音量增大”按鈕時會觸發該事件 |
searchbutton |
當用戶按下“搜索”按鈕時會觸發該事件 |
事件比較多,但是根據右邊的說明一目瞭然,爲了方便記憶,我們把這些事件分成三類:
1.程序加載事件
包括deviceready、pause、resume這三個事件,用於對程序的加載完畢(即生命週期的開始)、暫停、恢復進行處理。
2.被動消息事件
當設備的狀態改變時會觸發,包括online、offline、batterycritical、batterylow、batterystatus。比如說設備電量不會隨用戶的意願而突然增加,所以稱此類事件爲被動消息事件
3.主動消息事件
包括backbutton、menubutton、startcallbutton、endcallbutton、volumedownbutton、volumeupbutton和searchbutton這7個事件,分別在用戶按下相應的按鈕時進行響應。
當然,如果手機沒有響應的一些按鈕,對應的事件肯定是不可用的了