2015-10-07 2 views
0

Я работаю над приложением, которое использует iBeacon для опроса клиентов, которые приобрели продукт. iBeacons используются для отправки push-уведомлений с просьбой оценить услугу. Проблема в том, что я хочу убедиться, что только покупатели, которые купили что-то, получают уведомление.Сделать обратный вызов в didExitRegion с помощью iBeacon

Могу ли я позвонить на мой сервер и проверить, имеет ли этот клиент право на участие в опросе до выдачи уведомления? Я полагал, что это должно идти под didExitRegion, но будет ли это работать, когда приложение не работает в фоновом режиме?

ответ

1

Да, вы можете совершать вызовы веб-сервисов в обратных вызовах маяка. Основная проблема заключается в том, что если ваше приложение находится в фоновом режиме, ему предоставляется только 5 секунд времени выполнения до его приостановки. Даже если вы делаете вызов веб-службы очень быстрым, если сеть работает медленно, приложение никогда не сможет получить ответ.

Решение этой проблемы - продлить время работы фона. Вы можете увидеть учебник о том, как это сделать here. Хотя учебное пособие относится к расширению времени для целей ранжирования, тот же метод полезен и для вызовов веб-сервисов.

+0

Мое приложение закрыто, но когда enterRegion как у сказал, что у меня есть 5 секунд за 1 секунду, я получаю свои данные, затем я попытался представить местное уведомление, но это не сработало, когда приложение закрылось? Зачем ? Я думал, что у меня 5 секунд? – Omarj

+0

Предоставление локального уведомления с фона безусловно работает. Если вы этого не видите, вы должны опубликовать свой код, чтобы мы могли помочь дальше. Это должен быть новый вопрос (вы можете ссылаться на него здесь), поскольку это другая проблема. – davidgyoung

+0

вы можете проверить мой код здесь http://stackoverflow.com/q/33016073/1658442 – Omarj

0

Другим решением будет использование местных уведомлений. Это событие активизировалось, вы можете подать локальное уведомление. Когда пользователь нажимает уведомление, приложение становится активным, и вы можете делать все, что хотите. Просто помните, что если пользователь открывает уведомление в течение 5 секунд, вам нужно обработать его в didRecieveLocalNotification в делетете приложения. В любое другое время просто проверяйте флажок локального уведомления в представленииDidLoadWithOptions в делете приложения. Надеюсь, это поможет.

Смежные вопросы