小程序學習日記(8)——App

註冊小程序。接受一個 Object 參數,其指定小程序的生命週期回調等。

App() 必須在 app.js 中調用,必須調用且只能調用一次。不然會出現無法預期的後果。

屬性 類型 必填 說明
onLaunch function 選填 生命週期回調——監聽小程序初始化。
onShow function 選填 生命週期回調——監聽小程序啟動或切前臺。
onHide function 選填 生命週期回調——監聽小程序切後臺。
onError function 選填 錯誤監聽函數。
onPageNotFound function 選填 頁面不存在監聽函數。
onUnhandledRejection function 選填 未處理的 Promise 拒絕事件監聽函數。
其它 any 選填 開發者可以添加任意的函數或數據變量到 Object 參數中,用 this 可以訪問

<code>App({
  onLaunch (options) {  //onLaunch(Object object)
小程序初始化完成時觸發,全局只觸發一次。參數也可以使用 wx.getLaunchOptionsSync 獲取。

參數:與 wx.getLaunchOptionsSync 一致
    // 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'
})/<code>

onLaunch(Object object)


小程序初始化完成時觸發,全局只觸發一次。參數也可以使用 wx.getLaunchOptionsSync 獲取。
參數:與 wx.getLaunchOptionsSync 一致

onShow(Object object)
小程序啟動,或從後臺進入前臺顯示時觸發。也可以使用 wx.onAppShow 綁定監聽。
參數:與 wx.onAppShow 一致

onHide()
小程序從前臺進入後臺時觸發。也可以使用 wx.onAppHide 綁定監聽。

onError(String error)
小程序發生腳本錯誤或 API 調用報錯時觸發。也可以使用 wx.onError 綁定監聽。
參數:與 wx.onError 一致

onPageNotFound(Object object)
小程序要打開的頁面不存在時觸發。也可以使用 wx.onPageNotFound 綁定監聽。注意事項請參考 wx.onPageNotFound
參數:與 wx.onPageNotFound 一致
示例代碼如下:

<code>App({
  onPageNotFound(res) {
    wx.redirectTo({
      url: 'pages/...'
    }) // 如果是 tabbar 頁面,請使用 wx.switchTab
  }
})/<code>

onUnhandledRejection(Object object)基礎庫 2.10.0 開始支持,低版本需做兼容處理。
小程序有未處理的 Promise 拒絕時觸發。也可以使用 wx.onUnhandledRejection 綁定監聽。注意事項請參考 wx.onUnhandledRejection
參數:與 wx.onUnhandledRejection 一致

getApp

AppObject getApp(Object object)

獲取到小程序全局唯一的 App 實例。

屬性 類型 默認值 必填 說明

allowDefault boolean false 選填 在 App 未定義時返回默認實現。當App被調用時,默認 實現中定義的屬性會被覆蓋合併到App中。一般用於獨立分包

<code>// other.js
var appInstance = getApp()
console.log(appInstance.globalData) // I am global data/<code>

注意

不要在定義於 App() 內的函數中,或調用 App 前調用 getApp() ,使用 this 就可以拿到 app 實例。

通過 getApp() 獲取實例之後,不要私自調用生命週期函數。


分享到:


相關文章: