Heim >WeChat-Applet >Mini-Programmentwicklung >Was soll ich tun, wenn beim WeChat-Applet-Netzwerk eine Zeitüberschreitung auftritt?
Lösung für das WeChat-Applet-Netzwerk-Timeout: 1. Wenn die Aufgabe bei der Ausführung von onLaunch abläuft, setzen Sie die Fehlerstufe auf 0 und leiten Sie zur Fehlerseite weiter. 2. Wenn die Seitenanforderung abläuft, legen Sie die Fehlerstufe fest auf 0 2. Kann durch einen erneuten Versuch behoben werden.
Lösung für das WeChat-Applet-Netzwerk-Timeout:
onLaunch
Dadurch können wir die grundlegenden Informationen des Benutzers erhalten oder die Positionierung wird für die Verarbeitung im nächsten Schritt verwendet. Wenn die Daten nicht abgerufen werden können, schlägt das gesamte Applet fehl.
Daher schlage ich vor, dass Fehler in zwei Ebenen unterteilt werden können. Wenn die Verbindung zum Entwicklerserver nicht möglich ist, kann dies durch Neuladen der Seite behoben werden. Wenn die Daten in onLaunch jedoch nicht abgerufen werden können, muss dies der Fall sein aufgefordert, das kleine Programm zu beenden, es erneut zu öffnen und es erneut zu versuchen.
app.json
Die Konfiguration in wird zum Festlegen des Timeouts verwendet. Der Standardwert beträgt 6000 Millisekunden, also 6 Sekunden.
"networkTimeout": { "request": 6000, "downloadFile": 10000 }
Verwandte Lernempfehlungen: Tutorial zur WeChat-Applet-Entwicklung
1. Wenn die laufende Aufgabe in onLaunch
abläuft, setze ich die Fehlerstufe auf 0 und leite zur Fehlerseite weiter
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. Wenn die Seite Anfrage läuft ab, ich setze Der Fehler ist auf 2 gesetzt und kann durch einen erneuten Versuch behoben werden
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' }); } }); } })
3. Verarbeiten der Seite: Um getCurrentPages()
zum Abrufen des vorherigen Seitenobjekts zu verwenden, müssen Sie wx.navigateTo
verwenden Weiterleitung zu dieser Seite
/** * 页面的初始数据 */ 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); },
Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn beim WeChat-Applet-Netzwerk eine Zeitüberschreitung auftritt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!