App()函數用來註冊一個小程序。接受一個object參數,其指定小程序的生命週期函數等。
object參數說明:
屬性 |
類型 |
描述 |
觸發時機 |
onLaunch |
Function |
生命週期函數--監聽小程序初始化 |
當小程序初始化完成時,會觸發 onLaunch(全局只觸發一次) |
onShow |
Function |
生命週期函數--監聽小程序顯示 |
當小程序啓動,或從後臺進入前臺顯示,會觸發 onShow |
onHide |
Function |
生命週期函數--監聽小程序隱藏 |
當小程序從前臺進入後臺,會觸發 onHide |
onError |
Function |
錯誤監聽函數 |
當小程序發生腳本錯誤,或者 api 調用失敗時,會觸發 onError 並帶上錯誤信息 |
其他 |
Any |
|
開發者可以添加任意的函數或數據到 Object 參數中,用 this 可以訪問 |
App({ onLaunch: function(options) { // Do something initial when launch. }, onShow: function(options) { // Do something when show. }, onHide: function()
{ // Do something when hide. }, onError: function(msg) { console.log(msg) }, globalData: 'I am global data'})
onLaunch, onShow 參數
字段 |
類型 |
說明 |
path |
String |
打開小程序的路徑 |
query |
Object |
打開小程序的query |
scene |
Number |
打開小程序的場景值 |
shareTicket |
String |
shareTicket,詳見 獲取更多轉發信息 |
referrerInfo |
Object |
當場景爲由另一個小程序打開時,返回此字段 |
referrerInfo.appId |
String |
來源小程序的 appId |
referrerInfo.extraData |
Object |
來源小程序傳過來的數據 |
getApp()
我們提供了全局的getApp()函數,可以獲取到小程序實例。
// other.jsvar appInstance = getApp()console.log(appInstance.globalData) // I am global data
注意:
App()必須在app.js中註冊,且不能註冊多個。
不要在定義於App()內的函數中調用getApp(),使用this就可以拿到app實例。
不要在onLaunch的時候調用getCurrentPage(),此時page還沒有生成。
通過getApp()獲取實例之後,不要私自調用生命週期函數。