微信开发小程序解决网络超时的方法


客户端总是有可能由于网络状况而无法连接到微信服务器或开发者服务器。 但是有些只能在小程序启动时运行,


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


  },


微信开发小程序网络超时的处理方式,你学会了么?

我来说两句

0 条评论

推荐阅读

  • 响应式布局CSS媒体查询设备像素比介绍

    构建响应式网站布局最常见的是流体网格,灵活调整大小的站点布局技术,确保用户在使用的幕上获得完整的体验。响应式设计如何展示富媒体图像,可以通过以下几种方法。

    admin
  • 提升网站的性能快速加载的实用技巧

    网站速度很重要,快速加载的网站会带来更好的用户体验、更高的转化率、更多的参与度,而且在搜索引擎排名中也扮演重要角色,做SEO,网站硬件是起跑线,如果输在了起跑线,又怎么跟同行竞争。有许多方法可提升网站的性能,有一些技巧可以避免踩坑。

    admin
  • 织梦CMS TAG页找不到标签和实现彩色标签解决方法

    织梦cms是我们常见的网站程序系统的一款,在TAG标签中常常遇到的问题也很多。当我们点击 tags.php 页的某个标签的时候,有时会提示:“系统无此标签,可 能已经移除!” 但是我们检查程序后台,以及前台显示页面。这个标签确实存在,如果解决这个问题那?

    admin
  • HTML关于fieldset标签主要的作用

    在前端开发html页面中常用的标签很多,今天为大家带来的是关于HTML中fieldset标签主要的作用说明,根据技术分析HTML

    admin

精选专题