微信小程式app函式相關
阿新 • • 發佈:2019-02-17
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() 獲取例項之後,不要私自呼叫生命週期函式。