溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

小程序onLaunch異步,首頁onLoad卻先執(zhí)行的解決辦法

發(fā)布時間:2020-09-06 12:50:21 來源:網(wǎng)絡(luò) 閱讀:3319 作者:許琴 欄目:web開發(fā)

小程序onLaunch異步,首頁onLoad卻先執(zhí)行的解決辦法

首先在app.js中的onLaunch中寫入一個你要先執(zhí)行的調(diào)用方法。如圖:
我這里要在最開始onload之前獲取到網(wǎng)絡(luò)狀態(tài):
getNetworkInfo()

//onLaunch異步,首頁onLoad先執(zhí)行bug的處理
    getNetworkInfo:function(cb){
        var that = this
        if(that.globalData.isBtnStatus.NetworkStatus != '0'){
          typeof cb == "function" && cb(that.globalData.isBtnStatus.NetworkStatus)
        }else{
            wx.getNetworkType({
                success: function(res) {
                  //console.log('onLaunch網(wǎng)絡(luò):'+res.networkType);

                  // 返回網(wǎng)絡(luò)類型, 有效值:wifi/2g/3g/4g/unknown(Android下不常見的網(wǎng)絡(luò)類型)/none(無網(wǎng)絡(luò))
                  var networkType = res.networkType
                  if (networkType != 'none') {
                      that.globalData.isBtnStatus.NetworkStatus = 1;

                      typeof cb == "function" && cb(1);
                  }
                }
              })

              wx.onNetworkStatusChange(function(res) {
                  if (that.globalData.isBtnStatus.NetworkStatus != res.isConnected
                      && true == res.isConnected) {
                      // WxNotificationCenter.postNotificationName("NetworkPageRefresh", true);
                  }
                  that.globalData.isBtnStatus.NetworkStatus = res.isConnected;

                  typeof cb == "function" && cb( that.globalData.isBtnStatus.NetworkStatus);
              })            
        }
    },

然后再在項目pages里面的首頁index.js中的onload里面取值:

小程序onLaunch異步,首頁onLoad卻先執(zhí)行的解決辦法

app.getNetworkInfo(function(retStatus){
        //console.log('onLoad網(wǎng)絡(luò)NetworkStatus1:'+retStatus);
        //console.log('onLoad網(wǎng)絡(luò)NetworkStatus2:'+app.globalData.isBtnStatus.NetworkStatus);
        if (app.globalData.isBtnStatus.NetworkStatus == 1) {
            that.networkSucc(that);
        }else{
            that.networkFail(that);
        }
    })  

邏輯是:當進入onload,如果有網(wǎng)絡(luò)就處理加載項目數(shù)據(jù),如果沒有網(wǎng)絡(luò)就給出沒網(wǎng)絡(luò)的友好提示圖片頁面。

思路來源:
https://blog.csdn.net/qq_29246395/article/details/77567365

The end

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI