0

我目前有我的应用程序设置始终请求位置服务,使用[locationManager requestAlwaysAuthorization];NSLocationAlwaysUsageDescription

这很好用,但是我想提供仅在使用应用程序时使用位置服务的选项,如下面的屏幕截图所示。

我已经尝试添加NSLocationWhenInUseUsageDescription,但是他总是要求这个覆盖,并且只在使用时发出警报,关于谁在设置中提供这两个选项的任何想法?

4

2 回答 2

0

首先使用您自己的对话框询问用户两个选项 - 始终/在使用应用程序时。然后根据用户的选择调用相应的权限请求。

任何一个:

[locationManager requestAlwaysAuthorization];

或者:

[locationManager requestWhenInUseAuthorization];

两者都在 plist 中是有效的,所以这不是问题。取决于您在代码中实际请求它的时间。

不过维护起来会有些棘手,因此良好的代码结构至关重要。

于 2015-09-11T09:38:58.137 回答
0

内置的 iOS 警报只允许一个级别的权限,并且只会询问用户一次。假设大多数应用程序只需要一个或另一个。无论如何,如果您想让这两个选项都显示在“设置”中,则必须征得Always许可。

更重要的是:该Always设置实际上只供需要后台位置更新的应用程序使用。因此,除非您的应用程序需要它,否则您不应该要求它。此外,使用后台定位模式会导致您的应用在应用审核过程中受到更严格的审查。

于 2015-09-11T23:40:53.503 回答