解析微信小程序出现网络超时的解决策略

why 679 2024-07-10 09:53:11

微信小程序网络超时的解决办法: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) {

          //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,可以通过重试来修复

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 // 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);

  },

以上就是解析微信小程序出现网络超时的解决策略的详细内容。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:探索微信公众号添加视频的具体操作流程
下一篇:论抽奖小程序的开发之路
相关文章