为什么wx.openSetting在真机上回调不能重新获取到地理位置
发布于 6 年前 作者 yaoming 19015 次浏览 来自 问答

我在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)

}

},

如上代码,我本应该获取到的地理位置是西安,如开发者工具和手机在打开调试的情况下,

但是在手机关闭调试下,我的位置一直是‘宝鸡’,‘宝鸡’是我手动写上去的。

3 回复

是否依赖了某个请求,而这个请求的域名没有加入可信域名

你好,这里有一点需要注意下哦

参考文档:

https://developers.weixin.qq.com/miniprogram/dev/api/setting.html

同问,问题解决了吗

回到顶部