app.js文件是比較特殊的,它是微信小程序的入口文件,掌控整個小程序的生命周期,同時有一些全局的屬性、變量也存放在這個文件中。
App()方法只能寫在小程序根目錄下的app.js文件中,並且只能注冊1個。
小程序通過使用App(OBJECT)方法進行應用注冊,用其指定小程序的生命周期函數。
OBJECT參數如表所示。
屬性 |
類型 |
描述 |
觸發時機 |
備注 |
onLaunch() |
Function |
生命周期函數——監聽小程序的初始化 |
當小程序初始化完成時觸發 |
全局只觸發1次 |
onShow() |
Function |
生命周期函數——監聽小程序的顯示 |
當小程序啟動或從后台進入前台時觸發 |
|
onHide() |
Function |
生命周期函數——監聽小程序的隱藏 |
當小程序從前台進入后台隱藏時觸發 |
|
onError() |
Function |
錯誤監聽函數 |
當小程序發送錯誤腳本或API調用失敗時觸發 |
可以使用微信web開發者工具在空白app.js文件中直接輸入關鍵詞app,此時會自動出現提示列表。
默認選擇提示列表中的第一項,直接按回車鍵就可以自動生成帶有生命周期全套函數的代碼結構。
App()中的這些函數均為可選函數,可以根據實際需要刪除其中的部分函數,或保留這些函數空着不填充內容。
第12、19行注釋語句均提到了小程序后台和前台的概念,具體說明如下。
小程序后台:指的是小程序沒有在手機當前畫面顯示,但是並沒有被銷毀。當用戶單擊左上角的按鈕關閉小程序或者按設備的Home 鍵離開微信時會進入后台運行狀態。
小程序前台:指的是小程序在手機當前畫面被使用。當用戶再次打開處於后台運行狀態的小程序時會重新進入前台運行狀態。
注意:只有當小程序進入后台一定時間或者系統資源占用過高時才會被真正地銷毀。
由代碼可見,onLaunch()、onShow()和onError()方法在觸發時均會返回參數,用戶可以利用這些參數進行狀態的判斷與處理。其中,onLaunch()與onShow()方法返回的參數名稱完全相同。
字段 |
類型 |
說明 |
path |
String |
打開小程序的路徑 |
query |
Object |
打開小程序的query |
Scene |
Number |
打開小程序的場景值 |
shareTicket |
String |
小程序被轉發時會生成一個shareTicket,打開被轉發的小程序頁面可以獲取該參數 |
referrerInfo |
Object |
當場景從另一個小程序/公眾號/App打開時返回此字段 |
referrerInfo.appId |
String |
跳轉前的小程序/公眾號/App的appId |
referrerInfo.extraData |
Object |
跳轉前的小程序傳來的數據,當scene=1037或1038時才支持 |