当 mapView 请求用户权限时,使用 iOS 访问他们的位置

Posted

技术标签:

【中文标题】当 mapView 请求用户权限时,使用 iOS 访问他们的位置【英文标题】:Asking user permission for accessing their location with iOS when mapView does 【发布时间】:2012-10-08 13:25:24 【问题描述】:

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

【问题讨论】:

【参考方案1】:

您无需请求用户许可,ios 会自动为您完成。

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

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

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

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

【讨论】:

【参考方案2】:

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

NSLocationUsageDescription 属性应设置为向用户显示的消息

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

【讨论】:

【参考方案3】:

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

【讨论】:

以上是关于当 mapView 请求用户权限时,使用 iOS 访问他们的位置的主要内容,如果未能解决你的问题,请参考以下文章

phonegap ios:当用户为权限请求框选择“不允许”时,推送通知冻结

iOS - 添加和删除 MKCircle 覆盖到 MapView 导致故障

当用户位置改变时调用 mapView(_:viewFor:)

iOS 13 - 请求“使用时”位置权限会阻止我稍后请求“始终”

删除 iOS7 麦克风权限以测试权限下降

当用户更改联系人访问权限时,应用程序在 iOS 6 中崩溃