我在app.js中调用了getlocation,然后用腾讯地图sdk接口,将位置所在的市存储起来,在后续中调用,
如果用户点击拒绝,就会在某一个页面调用wx.opensetting这个接口,在回调中,重新或许地址,奇怪的是,我在开发工具上,在手机打开调试的情况下,回调就可以重新获取到地理位置,但是手机一旦关闭调试,就获取不到了,我用了setTimeOut这个方法延迟后续操作,根本没用。
代码片段:
onReady: function () {
var that=this
if (wx.getStorageSync(‘location’)) {
this.setData({
city: wx.getStorageSync(‘location’),
allShow:true,
hasCity: true,
})
getLimition(that)
} else {
setTimeout(function(){
wx.openSetting({
success: (res) => {
if (res.authSetting[“scope.userInfo”] || res.authSetting[“scope.userLocation”]) {
that.setData({
hasCity: true,
loaded: false,
})
setTimeout(function(){
if (wx.getStorageSync(‘location’)) {
that.setData({
city: wx.getStorageSync(‘location’),
})
} else {
that.setData({
city: ‘宝鸡’,
})
}
getLimition(that)
},5000)
}
}
})
},2000)
}
},
如上代码,我本应该获取到的地理位置是西安,如开发者工具和手机在打开调试的情况下,
但是在手机关闭调试下,我的位置一直是‘宝鸡’,‘宝鸡’是我手动写上去的。