- 当前 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));
}
})
}
微信小程序开发问题解答
微信小程序开发者回答:
麻烦提供出现问题的机型和微信版本,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
本文网址:http://www.91bianli.com/weixinxiaochengxu/17398.html