微信小程式網路超時的解決方法: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); },
以上是微信小程式網路逾時怎麼辦?的詳細內容。更多資訊請關注PHP中文網其他相關文章!