开发阶段在开发者工具端,没有任何问题。
测试阶段发现 在手机端几乎不会弹出授权框(有偶尔几次弹出)。
wx.openSetting()打开设置页也没有关于位置信息的设置项。
调试显示wx.getLocation()直接走了fail()返回内容:{errMsg: "getLocation:fail authorize no response"}
有尝试使用wx.authorize在onShow()里按照文档实例加入以下代码提前向用户发起授权请求。
wx.getSetting({ success(res) {
wx.authorize({ scope: 'scope.userLocation' , success(e) { console.log(e); } }) } } }); |
结果为console.log(res.authSetting);执行并且打印出的内容的确没有scope.userLocation,但是授权弹框没有弹出。
下面是我的操作流程:
清除开发者工具的授权数据
使用iPhone进行真机调试(已确认打开微信本身的定位权限 级别为 使用App期间)
进入小程序后查看设置页面 并没有定为相关的选项(即从未执行过定位授权)
进入需要定位的页面 在页面的onShow()里的提前向用户发起授权请求的代码,但未弹出授权框。
点击wx.getLocation()所在的事件的按钮后,直接走了fail()返回内容:{errMsg: "getLocation:fail authorize no response"}(使用安卓手机整体流程也一样但这里报错与iPhone不一致 内容:{errMsg: "getLocation:fail meet frequency limit, please slowdown and try again later"})。
以下是代码片段:
需要配置app.json文件,
工具版本是?
谢邀,你看看微信有定位的权限吗?如果微信都没有,微信内部的小程序,也获取不了
先确定工具里点击:清缓存--清除授权数据,后,还有这种情况。
是不是在手机上上拒绝过访问定位,拒绝过的话一段时间内是不会出弹窗,直接返回 fail 的