开发阶段在开发者工具端,没有任何问题。
测试阶段发现 在手机端几乎不会弹出授权框(有偶尔几次弹出)。
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"})。
以下是代码片段:
https://image.wxopen.club/content_a54d8b62-4f15-11ea-b16b-001a7dda7111.png