Ios 请求位置更新权限

Ios 请求位置更新权限,ios,core-location,cllocationmanager,location-services,Ios,Core Location,Cllocationmanager,Location Services,我目前使用[locationManager requestAlwaysAuthorization]将我的应用程序设置为始终请求位置服务;和N位置始终使用说明 这很好,但是我想让你选择只在使用下面截图中的应用程序时使用定位服务 我曾尝试添加NSLocationWhenUsageDescription,但这超出了他始终要求的范围,并且仅在使用时发出警报,关于在设置中向谁提供这两个选项,有什么想法吗 首先,请用户使用您自己的对话框,并提供两个选项-始终/使用应用程序时。然后根据用户的选择调用相应的权限

我目前使用[locationManager requestAlwaysAuthorization]将我的应用程序设置为始终请求位置服务;和N位置始终使用说明

这很好,但是我想让你选择只在使用下面截图中的应用程序时使用定位服务

我曾尝试添加NSLocationWhenUsageDescription,但这超出了他始终要求的范围,并且仅在使用时发出警报,关于在设置中向谁提供这两个选项,有什么想法吗


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

要么:

[locationManager requestAlwaysAuthorization];
或:

在plist中同时使用这两个选项是有效的,所以这不是问题。取决于您在代码中实际请求它的时间


不过维护起来有点困难,因此良好的代码结构至关重要。

内置的iOS警报只允许一级权限,并且只会询问用户一次。假设大多数应用程序只需要一个或另一个。在任何情况下,如果希望在设置中同时显示这两个选项,则必须请求“始终”权限

但更重要的是:
“始终”设置实际上仅适用于需要后台位置更新的应用程序。因此,除非你的应用程序需要它,否则你不应该要求它。此外,使用后台位置模式将导致在应用程序审查过程中对您的应用程序进行更严格的审查。

我让它“始终”工作,但我希望用户能够进入位置服务设置并更改为“使用中”,我已经阅读了两次请求位置服务的信息,每次一次都不起作用,因为警报只会显示一次。另外,如果我有info.plist的两个键,则只会调用整个正在使用的通知,而不总是我要调用的通知。如果你想更改已请求的位置,这可能是个问题。我建议的解决方案仅适用于新用户。在你已经展示了对话的地方,你不能做任何事情…除了走自己的路-自己的对话解释用户需要做什么。可能重复
[locationManager requestWhenInUseAuthorization];