Heim >WeChat-Applet >Mini-Programmentwicklung >Was soll ich tun, wenn beim WeChat-Applet-Netzwerk eine Zeitüberschreitung auftritt?

Was soll ich tun, wenn beim WeChat-Applet-Netzwerk eine Zeitüberschreitung auftritt?

coldplay.xixi
coldplay.xixiOriginal
2020-07-14 15:08:1114444Durchsuche

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.

Was soll ich tun, wenn beim WeChat-Applet-Netzwerk eine Zeitüberschreitung auftritt?

Lösung für das WeChat-Applet-Netzwerk-Timeout:

onLaunchDadurch 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn