如何处理位置服务弹出警报上的“取消”按钮

Posted

技术标签:

【中文标题】如何处理位置服务弹出警报上的“取消”按钮【英文标题】:How to handle "Cancel" button on Alert pop up for Location services 【发布时间】:2012-11-21 15:59:20 【问题描述】:

我在我的应用程序中使用定位服务。当我在位置服务开启的情况下运行应用程序时,一切都很完美。但是,如果我在全局范围内关闭位置服务,然后返回应用程序。它给我一个弹出窗口,说“打开位置服务以允许确定您的位置”,并带有两个按钮“设置”和“取消”。

如果我点击“设置”,它会将我带到“设置”应用程序(如预期的那样)。但如果我点击“取消”,什么也不会发生。我的应用程序无法获取事件并且它冻结,等待发生某些事情。如果之后我触发其他使用当前位置的事件,则授权失败,应用程序恢复正常。

为了处理这种行为,我想检测“取消”按钮上的触摸事件。有没有办法做到这一点。因为我认为这个 pop 是由操作系统而不是 SDK 处理的。

如果我错了,请纠正我。

【问题讨论】:

【参考方案1】:

这是在“取消”按钮上检测触摸事件的地方:

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error


您的实现可能会导致冻结(而不是 ios)。 尝试并使用这个空实现只是为了确保...

【讨论】:

我已经实现了这个功能。但是点击“取消”按钮后,什么都没有调用。

以上是关于如何处理位置服务弹出警报上的“取消”按钮的主要内容,如果未能解决你的问题,请参考以下文章

在ios中如果按钮的位置超出父视图无法响应.如何处理?

弹出警报过早显示?

如果没有更新 Google Play 服务,如何处理 Google API 客户端

如何处理 JOptionPane 中的取消按钮

如何正确处理位置服务切换

如何处理 dojo 数据网格单元更新,以便我可以将它们自动发布回服务器?