1. 定義
每個小程序都需要在 app.js 中調用 App 方法註冊小程序示例,綁定生命週期回調函數、錯誤監聽和頁面不存在監聽函數等。
整個小程序只有一個 App 實例,是全部頁面共享的。
通過 getApp 方法獲取到全局唯一的 App 示例,獲取App上的數據或調用開發者註冊在 App 上的函數。
2. App(Object object)
註冊小程序。接受一個 Object 參數,其指定小程序的生命週期回調等。
App() 必須在 app.js 中調用,必須調用且只能調用一次。不然會出現無法預期的後果。
App參數詳解如下圖:
例子1:
App({
onLaunch (options) {
// Do something initial when launch.
},
onShow (options) {
// Do something when show.
},
onHide () {
// Do something when hide.
},
onError (msg) {
console.log(msg)
},
globalData: 'I am global data'
})
onLaunch(O
onLaunch(Object object):小程序初始化完成時觸發,全局只觸發一次。
onShow(Object object):小程序啓動,或從後臺進入前臺顯示時觸發。
onHide():小程序從前臺進入後臺時觸發。
onError(String error):小程序發生腳本錯誤或 API 調用報錯時觸發。
onPageNotFound(Object object):小程序要打開的頁面不存在時觸發。(基礎庫 1.9.90 開始支持,低版本需做兼容處理)
3. getApp(Object object)
用於獲取小程序全局唯一的 App 實例。
例子2:
// xxx.js
var appInstance = getApp()
console.log(appInstance.globalData) // I am global data
注意:
不要在定義於 App() 內的函數中,或調用 App 前調用 getApp() ,使用 this 就可以拿到 app 實例。
通過 getApp() 獲取實例之後,不要私自調用生命週期函數。