核心位置不断请求许可

Posted

技术标签:

【中文标题】核心位置不断请求许可【英文标题】:Core Location keeps asking for permission 【发布时间】:2009-10-27 15:45:05 【问题描述】:

我可以发誓核心位置权限对话框的预期行为是这样的:

如果用户点击“是”,则不会再次显示 如果用户单击“否”,则会再显示一次,即下次启动应用程序时。如果用户再次点击“否”,则不会再次显示。

我实际看到的是以下内容:

用户必须连续点击两次“是”才能记住该偏好 无论用户点击“否”多少次,都不会记住该偏好

我只是想象第一个预期的行为,还是最近某个时候发生了变化?

更重要的是,我们对此有什么级别的控制?我是否要记住用户说“不”并停止询问?

这是否记录在任何地方?

【问题讨论】:

【参考方案1】:

我的回忆是,用户在停止询问之前总是必须点击两次“是”。

目前我能找到的唯一文档是 LocateMe 示例代码,特别是 MyCLController 类。在 locationManager:didFailWithError: 方法中,他们声称

连续两次应用启动时的“不允许”与说“从不允许”相同。用户可以通过转到“设置”>“常规”>“重置”>“重置位置警告”来为所有应用重置此设置。

这种行为似乎发生了变化,即使您单击“否”,它也会继续请求许可,尽管我不确定那是什么时候发生的。我不认为我们需要记住这一点,但这不会太难,因为如果他们单击“否”,则会返回错误代码 kCLErrorDenied

【讨论】:

以上是关于核心位置不断请求许可的主要内容,如果未能解决你的问题,请参考以下文章

核心位置未请求用户许可

Safari 通过地理位置多次请求许可

UIWebView 正在请求位置权限

如何在 Cordova iOS 应用程序中请求位置许可时更改警报文本?

Mac 上的 iOS 7 模拟器不适用于自定义位置(也不会请求许可)

requestLocation() 不请求许可,即使“下次询问”被勾选