2013-10-15 3 views
0

Мне нужно обновить пользователей для вещей, которые произошли вокруг их текущего местоположения, в то время как приложение находится в фоновом режиме.Региональный мониторинг и Push-уведомления в iOS

В моем понимании:

  1. Если мой сервер отправляет Push Notification клиенту, клиент сразу показать, что сообщение.

  2. Я могу настроить приложение таким образом, чтобы было определенное местоположение, с заданным радиусом могло вызвать сообщение.

Итак, что я хочу понять, если даже можно обновить мои пользователи о новых вещах в своих местах.

Я думал о двух возможных решениях, я не уверен, что они возможны.

Один, я думаю, если Push Push-уведомления позволят выполнять функцию до ее отображения, решить, должно ли отображаться сообщение.

Например: something happened in area x,y - The server initiates a message to all devices. Only the devices within range of x,y and a radius z, would show the message to the users.

Может быть услуги Региональный мониторинг может отправить сообщение на мой сервер и мой сервер может затем решить, если отправить Push Notification обратно клиенту ...

Например,

The user has entered a defined location, determined by the app. The app sends a message to the server. The server decides if a message is due. 

Любые идеи? что это возможно?

ответ

1

Фильтрация push-уведомлений по темам - это то, что вам нужно делать на стороне сервера, а не на стороне клиента. Apple конкретно заявляет, что не отправлять сообщения пользователям, которые не имеют отношения к делу, и вы не сможете их заблокировать, когда приложение не запущено. Кроме того, если вы используете службу для управления вашими push-уведомлениями, вы не хотите платить за сообщения, которые не актуальны.

Поэтому, когда вы регистрируете устройство в своей базе данных, вы должны зарегистрировать темы, на которые подписывается человек (т. Е. Сохранить список тем, которые пользователь может получить). Затем, когда инициируется событие, которое генерирует push-уведомление, отправляйте только устройства, зарегистрированные в этой теме. Я полагаю, что на нескольких платформах для push уже есть эта возможность. На концентраторах UrbanAirship и Azure вы можете использовать их функцию tags. Или вы можете разработать его самостоятельно, если вы сделаете свой собственный push-сервер.

+0

Хороший совет, спасибо! @RyanR предложила использовать еще одно стороннее решение. Но есть ли способ, кроме использования интересующих каналов, что здорово, но не решает проблему местоположения? – Ted

+1

http://stackoverflow.com/questions/6347503/how-do-i-get-a-background-location-update-every-n-minutes-in-my-ios-application – Joel

1

Посмотрите на Parse. У них есть такая функциональность, испеченная прямо, просто отправьте push to clients that match a geoPoint query.

+0

Я вижу, и хорошая точка ! Но как я могу определить, где это устройство? Приложение не обновляет меня, пока оно выключено. – Ted

+1

@Ted Если приложение полностью отключено, а не в фоновом режиме или приостановлено, невозможно получить обновления местоположения.Если он находится в фоновом режиме или был приостановлен, вы можете периодически активировать свое приложение, обрабатывать эти обновления и уведомлять сервер. – RyanR

+0

Ваш ответ так же хорош, как вы оба рассмотрели мою проблему и обычные способы борьбы с ней. Я должен был бы отметить ответ Джоэля только потому, что он был первым. Итак, спасибо, тем не менее, – Ted

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