网络不佳时getSetting返回错误值
- 当前 Bug 的表现(可附上截图)
体验版中,网络信号不佳__时调用wx.getSetting()获取是否已授权__userinfo无法返回__或__返回错误值,网络条件好时一切正常。
Andriod 6.0.1
10分钟内无法进入success/fail 任一回调函数
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)