【问题标题】:requestAlwaysAuthorization after requestWhenInUseAuthorization is acceptedrequestWhenInUseAuthorization 被接受后的 requestAlwaysAuthorization
【发布时间】:2016-09-02 14:00:12
【问题描述】:

我的应用可以有两个级别的 LocationHandler 状态。首先,我启动requestWhenInUseAuthorization,然后,如果用户激活某些特定功能,我启动requestAlwaysAuthorization

如果用户拒绝 requestAlwaysAuthorization,我需要得到通知,让他知道该功能无法按预期工作。问题是在这种情况下didChangeAuthorizationStatus 没有被调用,因为授权状态保持不变(它是AuthorizedWhenInUse,它仍然是AuthorizedWhenInUse)。

如果用户在接受 AuthorizedWhenInUse 后拒绝 AuthorizedAlways ,您知道如何通知我吗?

【问题讨论】:

    标签: ios mapkit core-location


    【解决方案1】:

    从 iOS 10 左右开始,即使用户接受了使用时,也无法在调用 requestWhenInUseAuthorization() 后调用 requestAlwaysAuthorization()。

    在以前的版本(至少 iOS8)中,您可以“加强”授权并在用户接受使用时请求后请求始终授权。这已经不可能了。

    最好的办法是检查 CLLocationManager.authorizationStatus() 偶尔显示一个对话框,使用 UIApplicationOpenSettingsURLString 将用户指向正确的设置页面

    【讨论】:

      猜你喜欢
      • 2016-02-07
      • 2014-11-15
      • 2017-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多