收藏
回答

网络不佳时getSetting返回错误值

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug getSetting 客户端 7.0.1 2.4.4

- 当前 Bug 的表现(可附上截图)

体验版中,网络信号不佳时调用wx.getSetting()获取是否已授权userinfo无法返回返回错误值,网络条件好时一切正常

  1. Andriod 6.0.1

    10分钟内无法进入success/fail 任一回调函数

  2. IOS 12

    进入success, 但res.authSetting["scope.userInfo"]是undefined,其实该用户已授权该信息。【这个非常坑,业务逻辑会引导用户再次授权而进入无限循环】


- 预期表现

网络信号不佳时调用wx.getSetting()进入fail回调。


- 复现路径

调用Demo


- 提供一个最简复现 Demo

function __request(url,bNeedAuth) {
  return new Promise(function (resolve, reject) {
    console.log('try to request url:' + url);
     
    if(wx.canIUse("getSetting")){
      wx.getSetting({
        success(res) {
          console.log('bNeedAuth is :' + bNeedAuth + ' res.authSetting["scope.userInfo"] is :' + (res.authSetting["scope.userInfo"]) );
          if (bNeedAuth && !res.authSetting["scope.userInfo"]) {
            //my logic
            console.log('Not authorized!');
            reject(new Error('not authorized !'));
          }
          else {
            //2.send request
            //wx.request()
            //... other logic
          }
        },
        fail(err){
          console.log('call wx.getSetting error.');
          console.log(err);
          reject(err);
        }
      })
    }
    else{
      let errMsg = 'wx.getSetting is not supported.';
      console.log(errMsg);
      reject(new Error(errMsg));
    }
  })
}


最后一次编辑于  2019-01-07
回答关注问题邀请回答
收藏

3 个回答

登录 后发表内容