网络不佳时getSetting返回错误值
发布于 5 年前 作者 yangsong 11047 次浏览 来自 问答
  • 当前 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));
    }
  })
}
3 回复

麻烦提供出现问题的机型和微信版本,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

我也遇到这种情况,网络不好的时候getSetting返回失败

万望官方关注一下啊

回到顶部