如:在openSetting设置定位授权,回调结果后马上调用getLocation会出现没有授权,使用延迟调用可以正常调用。
初步判断,openSetting的结果是异步发送至微信后台,马上调用getLocation的话会出现授权结果不一致。
请问有什么解决方案?
说起来遇见过一个跟你类似的问题,他也是openSetting设置授权后,回来第一次getLocation会失败,接下来的第二次会成功,。。
https://developers.weixin.qq.com/community/develop/doc/00042a94240d70872277518f351000
官方没来回答原因。。
<button open-type=“openSetting” bindopensetting=“callback”>
这里有callback,可以实时获取到用户的授权结果,只能在回调里处理了,getSetting不实时
wx.getLocation({
type: ‘wgs84’,
success: function (res) {
// 第一次在设置页面允许授权后,再次获取不会走success, 第二次在设置页面允许会走success
},
fail: function (e) {
// 第一次在设置页面允许授权后,返回获取权限会走fail函数(其实应该是success)
wx.getSetting({
success(res) {
// 这时候 res.authSetting[‘scope.userLocation’] 值为true 可以进行判断
res.authSetting[‘scope.userLocation’]) == true
}
})
}
})