微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CoreLocation 查看 requestAlwaysAuthorization() 是否触发了弹出窗口

如何解决CoreLocation 查看 requestAlwaysAuthorization() 是否触发了弹出窗口

在我的入职流程中,我首先使用 requestWhenInUseAuthorization,这里用户有 3 个选项:

  1. 在使用中允许
  2. 允许一次
  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
    }   
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。