微信小程序网络超时怎么办?

互联网 20-7-14

微信小程序网络超时的解决办法:1、在onLaunch运行任务如果超时,就把错误级别定为0,并转向错误页面;2、如果是页面请求超时,就把错误定为2,可以通过重试来修复。

微信小程序网络超时的解决办法:

onLaunch通过这个我们可以获取用户的基本信息,或者定位用来做下一步处理,如果这个无法获取数据,会导致整个小程序的失败。

所以我建议可以把错误分两个级别,假如是开发者服务器连接不上,可以通过重载页面来处理,但是如果是onLaunch中的数据也无法获取就必须让用户退出小程序,重新打开再试了。

app.json 中配置用来设置超时时间,默认为6000毫秒,也就是6秒

"networkTimeout": {     "request": 6000,     "downloadFile": 10000   }

相关学习推荐:微信小程序开发教程

一、在onLaunch运行任务如果超时,我把错误级别定为0,并转向错误页面

wx.login({       success(res) {         if (res.code) {           //console.log(res.code);           //发起网络请求           wx.request({             url: 'https://**/index/zz/getuserinfo',             data: {               code: res.code             },             success: res => {                            wx.setStorageSync('open_id', res.data.openid);               wx.setStorageSync('session_id', res.data.session_id);               wx.setStorageSync('session_key', res.data.session_key);               that.globalData.isSessionkey=true;               //console.log(res.data);               if (that.sessionCallback) {                         that.sessionCallback(res);               }                           },fail:f=>             {               wx.showModal({                 title: '提示',                 showCancel: false,                 content: '可能网络不太好,请重试!',                 success: function () {                   wx.navigateTo({                     url: '/pages/reload?error=0'                   });                 }               });             }           })         } else {           console.log('登录失败!' + res.errMsg)         }              }, fail: function () {         wx.showModal({           title: '提示',           showCancel: false,           content: '可能网络不太好,请重试!',           success: function () {             wx.navigateTo({               url: '/pages/reload?error=0'             });           }         });       }     });

二、如果是页面请求超时,我把错误定为2,可以通过重试来修复

wx.request({     url: webUrl + model.url,     data: model.param,     method: model.method,     success: function (res) {       },     fail: function (res) {       wx.hideLoading();       wx.showModal({         title: '提示',         showCancel: false,         content: '可能网络不太好,请重试!',         success: function () {           wx.navigateTo({             url: '/pages/reload?error=1'           });         }       });     }   })

三、处理页面:要使用getCurrentPages()获取上一页对象,必须使用wx.navigateTo转向此页

/**   * 页面的初始数据   */  data: {   error:0 // 0:需要退出小程序 1:可以重新发起网络请求重试  },  reLoad:function(error)  {    var pages = getCurrentPages();//获取页面栈    if (pages.length > 1) {      //上一个页面实例对象      var prePage = pages[pages.length - 2];      let url=prePage.route;      var options = prePage.options //如果要获取url中所带的参数可以查看options      console.log('options', options);      //拼接url的参数      var urlWithArgs = url + '?'      for (var key in options) {        var value = options[key]        urlWithArgs += key + '=' + value + '&'      }      urlWithArgs = urlWithArgs.substring(0, urlWithArgs.length - 1)            wx.reLaunch({        url: '/' + urlWithArgs,        fail:function(e)        {          wx.switchTab({            url: '/' + prePage.route,          })        }      });    }   },     /**    * 生命周期函数--监听页面加载    */   onLoad: function (options) {     this.setData({ error: options.error});    // this.reLoad(options.error);   },

以上就是微信小程序网络超时怎么办?的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 网络超时
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:微信小程序如何配置网络请求超时?

相关资讯