繁体   English   中英

ios启用位置服务并在显示后立即显示最近的城市

[英]ios enable location services and show closest city immediately after

我正在为我的应用程序使用startMonitoringSignificantLocationChanges ,并且我想要执行以下操作。

用户注册后,我会显示一个软提示,询问用户是否将授予应用访问其位置的权限。 如果他们单击“是”,我将呼叫:

 if([CLLocationManager locationServicesEnabled]) {
      [locationManager startMonitoringSignificantLocationChanges];
 }

这导致ios提示,要求用户为该应用启用位置服务。 如果用户单击YES我想获取他们的当前位置,并且如果他们的当前位置靠近我的应用程序所在的城市之一,我将仅返回到该应用程序。

但是,如果城市离我的应用程序所在的城市不近,我想显示一个屏幕,显示可用城市的列表,并请他们选择一个。 我目前正在做的是我在给定的页面上等待,直到locationManager:didUpdateLocations回调触发,这样我才有了当前位置。 然后,我进行必要的检查,以查看该城市是否靠近我可以服务的城市之一。

我遇到的问题是有时回调不会立即触发,然后用户将被卡在提示页面上而没有任何反应。 什么是正确的方法?

需要注意的是,我不在乎确切的位置,只需要用户的大致位置即可。

startMonitoringSignificantLocationChanges

用于跟踪位置的变化,但仅当它们四处移动时。 您所描述的不一定相同。 如果我打开您的应用程序并且静止不动,则不会触发“重大位置更改”。

来自Apple文档

返回当前位置定位后,接收器仅在检测到用户位置发生重大变化时才生成更新事件。

我将从被动的“重大”更改为

[locationManager startUpdatingLocation];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM