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

微信小程序网络超时的解决办法:
onLaunch通过这个我们可以获取用户的基本信息,或者定位用来做下一步处理,如果这个无法获取数据,会导致整个小程序的失败。
所以我建议可以把错误分两个级别,假如是开发者服务器连接不上,可以通过重载页面来处理,但是如果是onLaunch中的数据也无法获取就必须让用户退出小程序,重新打开再试了。
app.json 中配置用来设置超时时间,默认为6000毫秒,也就是6秒
1 2 3 4 | "networkTimeout" : {
"request" : 6000,
"downloadFile" : 10000
}
|
一、在onLaunch运行任务如果超时,我把错误级别定为0,并转向错误页面
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | wx.login({
success(res) {
if (res.code) {
wx.request({
url: 'https:
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;
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,可以通过重试来修复
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 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转向此页
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
data: {
error:0
},
reLoad: function (error)
{
var pages = getCurrentPages();
if (pages.length > 1) {
var prePage = pages[pages.length - 2];
let url=prePage.route;
var options = prePage.options
console.log('options', options);
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});
},
|
以上就是解析微信小程序出现网络超时的解决策略的详细内容。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。