4

我使用 MapView 开发了一个应用程序 - 当应用程序启动时,它会要求用户允许访问/使用他们的位置,而无需我进行任何编码。这是否足以获得许可,还是我还应该专门询问用户并提供访问理由?如果我没有特别提出请求并允许 MapView 代表我提出请求,Apple 会在提交时拒绝应用程序吗?

4

3 回答 3

11

您不需要向用户征求许可,iOS 会自动为您完成。

您应该在 CLLocationManager 对象中设置目的字符串属性,以便当系统询问时它也可以告诉用户您为什么想要他们的位置。

locationManager.purpose = @"Location needed to show zombies that are nearby.";

在调用之前设置此属性,startUpdatingLocation以便在系统警报中向用户显示请求使用位置的权限。

在委托中,您可以实现方法locationManager:didChangeAuthorizationStatus:以了解用户是否允许核心位置。

于 2012-10-08T15:27:17.687 回答
10

从 iOS 6 开始,“目的”消息的正确位置在 Info plist 文件中。

NSLocationUsageDescription 属性应该与要显示给用户的消息一起设置

Apple 提供了很好的文档: https ://developer.apple.com/library/mac/#documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html

于 2012-12-14T19:39:03.913 回答
0

您不需要告诉用户为什么要访问他们的位置,尤其是在应用程序基于位置和映射的情况下。话虽如此,很高兴在权限弹出窗口出现之前告诉用户您将如何处理他们的数据,以便希望更多用户接受。

于 2012-10-08T13:28:45.343 回答