Я использую startMonitoringSignificantLocationChanges
для своего приложения и хочу сделать следующее.
После того, как пользователь зарегистрируется, я показываю мягкую подсказку, спрашивающую пользователя, предоставит ли он приложению доступ к своему местоположению. Если они нажимают «да», я звоню:
if([CLLocationManager locationServicesEnabled]) {
[locationManager startMonitoringSignificantLocationChanges];
}
Это приводит к подсказке ios, предлагающей пользователю включить службы определения местоположения для приложения. Если пользователь нажимает YES
, я хочу получить его текущее местоположение, и если его текущее местоположение близко к одному из городов, в которых работает мое приложение, я просто вернусь в приложение.
Однако, если город не находится близко ни к одному из городов, в которых работает мое приложение, я хочу показать экран со списком доступных городов и попросить их выбрать один. Что я делаю в настоящее время, так это жду на данной странице, пока не сработает обратный вызов locationManager:didUpdateLocations
, чтобы у меня было текущее местоположение. Затем я делаю необходимую проверку, чтобы увидеть, близок ли этот город к одному из моих обслуживаемых городов или нет.
Проблема, с которой я сталкиваюсь, заключается в том, что иногда обратный вызов не срабатывает сразу, и пользователь затем застревает на странице подсказки, и ничего не происходит. Как правильно это сделать?
Следует отметить, что меня не волнует точное местоположение — мне нужна общая близость пользователя.