3

我刚刚完成了与信标和用户位置交互的应用程序的开发。

我向 locationManager 请求 requestAlwaysAuthorization 权限,并在 plist NSLocationAlwaysUsageDescription 属性中添加了我的描述;一切正常!!!

我意识到:如果用户不接受请求的权限,iOS 会在使用时始终禁用本地化,从而非常限制应用程序的使用。

我希望如果用户拒绝 requestAlwaysAuthorization 自动被询问 requestWhenInUseAuthorization 权限!

这可以通过一些本机方法实现,还是我必须处理另一个权限的请求?

谢谢大家!

编辑: Shazam 或 Facebook 等应用程序如何在位置设置中提供“从不”、“使用时”和“始终”三个选项?当然有办法将它们呈现给用户?!?!

4

1 回答 1

3

你不能那样做。如有疑问,请始终前往 Apple 文档。

https://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLLocationManager_Class/index.html#//apple_ref/occ/instm/CLLocationManager/requestAlwaysAuthorization

完成requestAlwaysAuthorization后(用户接受/拒绝),状态更改为 etherkCLAuthorizationStatusDeniedkCLAuthorizationStatusAuthorized(或其他一些,没关系)。

此外,两者requestAlwaysAuthorization都有requestWhenInUseAuthorization这样的逻辑(在文档中描述)

如果当前授权状态不是 kCLAuthorizationStatusNotDetermined,则此方法不执行任何操作,也不会调用 locationManager:didChangeAuthorizationStatus: 方法。

如果用户拒绝,requestAlwaysAuthorization则状态将更改为,kCLAuthorizationStatusDenied并且将来会忽略这两个请求授权。

于 2015-01-21T15:44:01.130 回答