必现
- 发布:2023-02-08 13:42
- 更新:2023-02-08 16:37
- 阅读:1065
产品分类: uniapp/App
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: 12.0.1
HBuilderX类型: 正式
HBuilderX版本号: 3.6.18
手机系统: iOS
手机系统版本号: iOS 15
手机厂商: 苹果
手机机型: 6s plus
页面类型: nvue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
操作步骤:
预期结果:
第一次进入后台后提示始终允许权限 或者 第一次打开app直接提示始终允许
第一次进入后台后提示始终允许权限 或者 第一次打开app直接提示始终允许
实际结果:
第二次进入后台才提示
第二次进入后台才提示
bug描述:
iOS云打包后使用后台定位 第一次启动app只有允许一次、使用app时允许和不允许三个选项 (如下图)。 选择使用app时允许后可以获取定位,这时候app进入后台后 会报这个错误"errMsg": "getLocation:fail Error Domain=PGLocation Code=2 \"不能获取到位置\" UserInfo={NSLocalizedDescription=不能获取到位置},https://ask.dcloud.net.cn/article/282", 然后再打开app定位能够获取,但是重新进入后台才会弹出保持仅使用期间、更改为始终允许两个选项(如下图),这时候选择始终允许 再次进入后台,才能后台定位 1.这里面必须第二次进入后才才出现这个弹框。第一次没有且报错 ,这是为什么。2.可有办法在第一次就出现始终允许的选项 已经配置了NSLocationAlwaysUsageDescription 看别人说要离线打包才行 云打包不行吗
BoredApe - 有问题就会有答案。
iOS13之前的系统。在弹出的权限申请框中有始终允许。
但是iOS13后 用户只可以选择【使用APP时允许】或者【只允许一次】。
当选择【使用APP时允许】选项后,并且当app退到后台后如果需要还持续定位,系统会择机弹窗提示用户是否要升级权限为始终允许。
总结:iOS13之后的系统不能直接设置始终允许定位。需要分两步获取始终定位的权限。无法主动用代码去实现控制。


海角 (作者)
你没解决我提的问题啊
2023-02-08 15:44