我也有一样的需求,使用opensetting弹窗是没有那个后台选项的
userLocationBackground拉起授权被拒后无法再次拉起授权先上代码: //监听地理位置变化 onLocationChange(res){ console.log('onLocationChange:', res) }, //开始行程 transStart(){ wx.authorize({ scope: 'scope.userLocationBackground', success: () => { wx.onLocationChange(this.onLocationChange) wx.startLocationUpdateBackground({ type: 'gcj02', success: () => { }, fail: e => { console.log('startLocationUpdateBackground fail:', e)} }) }, fail: e => { console.log('userLocationBackground denyed:', e) } }) }, //停止行程 transStop(){ wx.stopLocationUpdate() wx.offLocationChange() } 小程序appid:wx8da5a101b12742c0 已申请了实时定位和后台定位权限,隐私协议里也申明了位置使用权限。在首次调用时,会拉起用户授权弹窗,但若用户不小心点了拒绝后,有两种情况: 1.如果用户将选项勾选的是 【使用小程序时】,点拒绝后,可以再次申请拉起授权。 2.如果用户将选项勾选的是【使用小程序时和离开后】,点拒绝后,将无法再次拉起授权,后台是直接反馈的 authorize:fail auth deny, 也试过用openSetting引导用户去设置时根本没有这个后台运行定位的选项, 只能删除小程序后重新安装小程序,重新授权。 以上是在开发者工具中的。实际在iOS真机上,【使用小程序时】和 【使用小程序时和离开后】这两个选项误拒绝后都无法第二次拉起。 另,还有一个现象,在上面的iOS真机上授权后,可以正常获取到定位数据,但是微信切换到后台或熄屏后,定位数据就没有了,这与startLocationUpdateBackground的使用场景好像不符,是不是我调用方法有问题或是哪里还有设置未完成
05-06