Уведомление о географическом местоположении в iOS - PullRequest
2 голосов
/ 24 февраля 2012

Я хочу реализовать уведомление о географическом местоположении в iOS, но только в определенную дату и время.

Уведомление будет запущено, только если пользователь находится в определенном месте и в определенную дату и время.

Пример: пользователь находится в Рио-де-Жанейро и ему 12 часов.

Кто-нибудь знает, как объединить эти два условия для запуска уведомления?

Ответы [ 3 ]

0 голосов
/ 18 августа 2012

Похоже, что это можно сделать элегантно, если обновления местоположения имеют прецедент.

Используйте это CoreLocation startMonitoringSignificantLocationChanges

Для получения обновлений о местоположении, и этиОбновления смогут запускать ваше приложение в фоновом режиме (как описано в документации).Затем, в методе «application: didFinishLaunchingWithOptions» вашего AppDelegate, включите логику для проверки того, настало ли время для отправки уведомления (проверяя данные в CoreData или иным способом).

Не должно бытьнеобходимо создать таймер с периодическими проверками.Просто позвольте CoreLocation обработать точку входа в событие, поскольку оно запустит ваше приложение в фоновом режиме в нужном месте.

0 голосов
/ 23 августа 2012

Это просто.Я предполагаю, что вы знакомы по классам CLLocationManager и MKReverseGeocoder.Для вашей цели, вероятно, подойдет только мониторинг значительных изменений местоположения (даже если это иногда происходит только для движущихся километров).Это поможет вам сэкономить заряд батареи на устройстве.

Итак, для CLLocationManager's делегата есть метод под названием locationManager:didUpdateToLocation:fromLocation, который вы можете использовать.Все, что вам нужно сделать, это использовать обратное геокодирование здесь, чтобы определить реальное название города в зависимости от фактического местоположения, используя класс MKReverseGeocoder.Кроме того, вы должны проверить местное время на устройстве, сопоставить их и действовать соответственно (например, настроить локальное уведомление, чтобы вывести приложение из фона).

0 голосов
/ 24 февраля 2012

В этом нет ничего, что я знаю - вам придется кодировать логику самостоятельно.Таким образом, вы просто получите гео-обновления от CoreLocation, и вы можете создать таймер для предоставления вам временных обновлений, а затем написать некоторую логику, которая периодически запускается и, если время / место соответствует вашим бизнес-правилам, запускает уведомление.Обратите внимание, что приложение должно быть запущено для достижения этой цели.Вы можете отправить push-уведомление с внешнего сервера, но этот сервер должен знать, где находится телефон, и ваше приложение должно сообщить об этом.

Помогает ли это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...