(1)onlaunch:當小程序初始化完成時,會觸發 onLaunch(全局只觸發一次)(app.js);
(2)onLoad: 頁面加載
小程序註冊完成後,加載頁面,觸發onLoad方法。一個頁面只會調用一次,能夠在 onLoad 中獲取打開當前頁面所調用的 query 參數(頁面js)。
(3)onShow: 頁面顯示
頁面載入後觸發onShow方法,顯示頁面。每次打開頁面都會調用一次(好比當小程序有後臺進入到前臺運行或從新進入頁面時)。
(4)onReady: 首次顯示頁面,頁面初次渲染完成,會觸發onReady方法,渲染頁面元素和樣式,一個頁面只會調用一次,表明頁面已經準備穩當,能夠和視圖層進行交互。對界面的設置如wx.setNavigationBarTitle請在onReady以後設置。
(5)onHide: 頁面隱藏
當navigateTo或底部tab切換時調用。
(6)onUnload: 頁面卸載
當使用重定向方法wx.redirectTo(OBJECT)或關閉當前頁返回上一頁wx.navigateBack的時候調用。
基本上能夠說執行順序爲onLaunch–onLoad–onShow–onReady–onHide.
雖說onLaunch在onLoad以前執行,可是在onLaunch裏請求獲取是否有權限,等待返回值的時候Page裏的onLoad事件就已經執行了。
解決辦法:
在APP裏面onLanch中的網絡請求中設置判斷小程序
if (this.userInfoReadyCallback) { this.userInfoReadyCallback(res) }
在page的onLoad中設置一個回調網絡
app.userInfoReadyCallback = res => { if (res != '') { console.log("app.globalData.userInfo") } }
.app