- 当前 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)); } }) } |
我也遇到这种情况,网络不好的时候getSetting返回失败
返回失败不可怕,可怕的是在ios上返回成功,显示用户未授权
我看到个帖子,之前官方回复是getSetting需要后台连接网络,网络不佳会返回失败https://developers.weixin.qq.com/community/develop/doc/00040a034cc710f5d267c557556c00?highLine=getSetting%2520%25E9%2599%2590%25E5%2588%25B6
好含糊的回答,我现在基本放弃这个接口了,没办法保证用户网络情况。自己到自己后台查有没有授权过。
麻烦提供出现问题的机型和微信版本,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
机型是三星A7108和iphone7,微信版本已写是7.0.1
代码就是一行
wx.getSetting({
success(res) {
console.log(
' res.authSetting["scope.userInfo"] is :'
+ (res.authSetting[
"scope.userInfo"
]) );}
)
你们断网时候试一下,需要准备片段再回我
代码片段
https://developers.weixin.qq.com/s/UR9oofmq7e5r
万望官方关注一下啊