1. 程式人生 > >微信小程式app函式相關

微信小程式app函式相關

app()

App() 函式用來註冊一個小程式。接受一個 object 引數,其指定小程式的生命週期函式等。

object引數說明:

屬性 型別 描述 觸發時機
onLaunch Function 生命週期函式–監聽小程式初始化 當小程式初始化完成時,會觸發 onLaunch(全域性只觸發一次)
onShow Function 生命週期函式–監聽小程式顯示 當小程式啟動,或從後臺進入前臺顯示,會觸發 onShow
onHide Function 生命週期函式–監聽小程式隱藏 當小程式從前臺進入後臺,會觸發 onHide
onError Function 錯誤監聽函式 當小程式發生指令碼錯誤,或者 api 呼叫失敗時,會觸發 onError 並帶上錯誤資訊
其他 Any 開發者可以新增任意的函式或資料到 Object 引數中,用 this 可以訪問
  • 前臺、後臺定義: 當用戶點選左上角關閉,或者按了裝置 Home 鍵離開微信,小程式並沒有直接銷燬,而是進入了後臺;當再次進入微信或再次開啟小程式,又會從後臺進入前臺。需要注意的是:只有當小程式進入後臺一定時間,或者系統資源佔用過高,才會被真正的銷燬。
  • 關閉小程式: 當用戶從掃一掃、轉發等入口(場景值為1007, 1008, 1011, 1025)進入小程式,且沒有置頂小程式的情況下退出,小程式會被銷燬(小程式執行機制在基礎庫版本 1.4.0 有所改變: 此關閉邏輯在新版本已不適用)。

onLaunch, onShow 引數

欄位 型別 說明
path String 開啟小程式的路徑
query Object 開啟小程式的query
scene Number 開啟小程式的場景值
shareTicket String 轉發資訊
referrerInfo Object 當場景為由從另一個小程式或公眾號或App開啟時,返回此欄位
referrerInfo.appId String 來源小程式或公眾號或App的 appId
referrerInfo.extraData Object 來源小程式傳過來的資料,scene=1037或1038時支援

其中,referrerInfo.appId與scene的對應關係及相關說明如下:

場景值 場景 appId 資訊含義
1020 公眾號 profile 頁相關小程式列表 返回來源公眾號 appId
1035 公眾號自定義選單 返回來源公眾號 appId
1036 App 分享訊息卡片 返回來源應用 appId
1037 小程式開啟小程式 返回來源小程式 appId
1038 從另一個小程式返回 返回來源小程式 appId
1043 公眾號模板訊息 返回來源公眾號 appId

getApp()

全域性的 getApp() 函式可以用來獲取到小程式例項。

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

注意

  • App() 必須在 app.js 中註冊,且不能註冊多個。
  • 不要在定義於 App() 內的函式中呼叫 getApp() ,使用 this 就可以拿到 app 例項。
  • 不要在 onLaunch 的時候呼叫 getCurrentPages(),此時 page 還沒有生成。
  • 通過 getApp() 獲取例項之後,不要私自呼叫生命週期函式。