问题描述
在我的入职流程中,我首先使用 requestWhenInUseAuthorization,这里用户有 3 个选项:
- 在使用中允许
- 允许一次
- 不允许
但是在回调 didChangeAuthorization 状态中,“Allow while in use”和“Allow once”选项没有区别,都显示为“authorizedWhenInUse”。
真正的问题出现在我的下一个屏幕上,我要求 requestAlwaysAuthorization。如果用户选择“允许一次”,则不会弹出询问用户是否愿意
一个。更改为始终允许 湾使用中保持
从这里开始,我的用户被困在了入职流程中。
我的问题和 TL;DR:有没有办法知道用户按下“允许一次”和“使用时允许”之间的区别,或者有没有办法查看是否向用户显示警报视图?
解决方法
不是最优雅的解决方案,但有效。 requestAlwaysAuthorization() 之后
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
if UIApplication.shared.applicationState.rawValue == 0 {
// No location permission popup appeared
}
}