网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

小程序onLaunch异步,首页onLoad却先执行的解决办法

小程序onLaunch异步,首页onLoad却先执行的解决办法

创新互联专业为企业提供成安网站建设、成安做网站、成安网站设计、成安网站制作等企业网站建设、网页设计与制作、成安企业网站模板建站服务,10多年成安做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

首先在app.js中的onLaunch中写入一个你要先执行的调用方法。如图:
我这里要在最开始onload之前获取到网络状态:
getNetworkInfo()

//onLaunch异步,首页onLoad先执行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网络:'+res.networkType);

                  // 返回网络类型, 有效值:wifi/2g/3g/4g/unknown(Android下不常见的网络类型)/none(无网络)
                  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却先执行的解决办法

app.getNetworkInfo(function(retStatus){
        //console.log('onLoad网络NetworkStatus1:'+retStatus);
        //console.log('onLoad网络NetworkStatus2:'+app.globalData.isBtnStatus.NetworkStatus);
        if (app.globalData.isBtnStatus.NetworkStatus == 1) {
            that.networkSucc(that);
        }else{
            that.networkFail(that);
        }
    })  

逻辑是:当进入onload,如果有网络就处理加载项目数据,如果没有网络就给出没网络的友好提示图片页面。

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

The end


网页名称:小程序onLaunch异步,首页onLoad却先执行的解决办法
本文网址:http://bjjierui.cn/article/gcjedd.html

其他资讯