收藏
回答

为什么wx.openSetting在真机上回调不能重新获取到地理位置

问题模块 框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
API和组件 小程序 Bug wx.openSetting 客户端 6.6.7 2.0.2

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

}

},

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



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



最后一次编辑于  2018-06-11
回答关注问题邀请回答
收藏

3 个回答

  • 社区技术运营专员-娇华
    社区技术运营专员-娇华
    2018-06-11

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


    参考文档:

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

    2018-06-11
    赞同
    回复 1
    • 。
      2018-06-12

      换用了,可惜还是那样,真机上就是不重新获取地理位置。。。。

      2018-06-12
      回复
  • Special
    Special
    2018-06-14

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

    2018-06-14
    赞同
    回复 1
    • 。
      2018-06-14

      嗯嗯,已经解决了,感谢。

      2018-06-14
      回复
  • 顺风启航
    顺风启航
    2018-06-13

    同问,问题解决了吗

    2018-06-13
    赞同
    回复 1
    • 。
      2018-06-14

      看一楼答案,要用button去调用,然后我当时忘记配置域名了,检查域名

      2018-06-14
      回复