Skip to content

App

App(Object object)

注册小程序,接受一個Object參數,其指定小程序的生命週期回檔等。

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

參數

Object object

内容類型預設值必填說明
onLaunchfunction-生命週期回檔——監聽小程序初始化
onShowfunction-生命週期回檔——監聽小程序啟動或切換到前臺
onHidefunction-生命週期回檔——監聽小程序切換到後臺
onErrorfunction-錯誤監聽函數
onPageNotFoundfunction-頁面不存在監聽函數
onUnhandledRejectionfunction-未處理的Promise拒絕事件監聽函數
onThemeChangefunction-監聽系統主題變化
其他any-開發者可以添加任意的函數或數據變量到Object參數中,用this可以訪問

關於小程序前後臺的定義和小程序的運行機制,請參攷 小程序運行機制 章節

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 一致。

示例代碼:

js
App({
  onPageNotFound(res) {
    wx.redirectTo({
      url: 'pages/...'
    }) // If it were Tabs Page, use the wx.switchTab
  }
})

onUnhandledRejection(Object object)

小程序有未處理的Promise拒絕時觸發,也可以使用 wx.onUnhandledRejection 綁定監聽,注意事項請參攷 wx.onUnhandledRejection

參數:與 wx.onUnhandledRejection 一致。

onThemeChange(Object object)

系統切換主題時觸發,也可以使用 wx.onThemeChange 綁定監聽。

參數:與 wx.onThemeChange 一致。

示例代碼:

js
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'
})

AppObject getApp(Object object)

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

參數

Object object

内容類型預設值必填說明
allowDefaultbooleanfalse在App未定義時返回默認實現。 當App被調用時,默認實現中定義的内容會被覆蓋合併到App中,一般用於 獨立分包

示例代碼:

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

注意事項

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

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