iOS核心位置:如何禁用用户权限的默认iOS弹出消息

Posted

技术标签:

【中文标题】iOS核心位置:如何禁用用户权限的默认iOS弹出消息【英文标题】:iOS Core-location: How to disable the default iOS pop-up message for user permission 【发布时间】:2013-11-25 15:58:58 【问题描述】:

我正在使用核心位置框架来收集我的 ios 应用程序中的设备位置。当我第一次在设备上安装该应用程序时,iOS 会通过如下警告视图请求用户许可。

有什么方法可以禁用此默认警报视图并向用户显示自定义消息?

【问题讨论】:

Replacement for "purpose" property of CLLocationManager 的可能副本或查看***.com/questions/18473265/… @rashmiRanjan 您可以以编程方式设置目的消息。查看答案 @Bhumeshwerkatre 已弃用。 @rmaddy 感谢告知 【参考方案1】:

我添加了添加目的消息的屏幕截图。

【讨论】:

自 iOS 6 起已弃用。 好的。但是,您应该将问题标记为重复,而不是发布此答案。 提供的答案适用于≥iOS6。见developer.apple.com/library/mac/documentation/general/Reference/…【参考方案2】:

这些警报是系统生成的,开发人员不可编辑。如果它们是可编辑的,那么开发人员可以更改含义或使最终用户不明白他们要求什么权限。

【讨论】:

这是不正确的。您可以通过在 Info.plist 中设置值来自定义消息。 @Maddy:你能告诉我们如何在 info.plist 文件中做到这一点吗? 使用 NSLocationUsageDescription 设置 description here 将向现有对话框添加注释。但是,您不能禁用或更改现有警报的措辞(如前所述)。 @MarkS。 OP询问如何更改消息。该设置允许用户更改消息。【参考方案3】:

出于用户隐私的原因,此提示/警报是系统生成的,如果您的应用使用核心位置,则无法禁用它。

话虽如此,您可以延迟通过组织代码流来延迟在应用中显示此警报,以便仅在需要时调用位置服务(延迟初始化)。

按照apple docs,阅读方法下的注释-

+ (BOOL)locationServicesEnabled

位置服务会在用户第一次尝试在应用中使用与位置相关的信息时提示他们,但不会提示后续尝试。如果用户拒绝使用位置服务,而您仍然尝试启动位置更新,位置管理器会向其代理报告错误。

【讨论】:

以上是关于iOS核心位置:如何禁用用户权限的默认iOS弹出消息的主要内容,如果未能解决你的问题,请参考以下文章

iOS 3 和 iOS 4 核心位置权限对话框

iOS Swift如何打开位置权限弹出窗口

iOS Swift如何打开位置权限弹出窗口

iOS 在允许位置服务权限后获取位置

如何以编程方式关闭/禁用 iOS 11 中引入的屏幕截图弹出框?

如何自定义推送通知的iOS权限对话框的弹出时间