2015-12-31 4 views
0

Как синхронизировать push-уведомления на нескольких устройствах iOS?Как синхронизировать push-уведомления на нескольких устройствах iOS?

Сценарий: У пользователя есть приложение, установленное на двух устройствах. Оба устройства получают удаленное уведомление. Пользователь открывает приложение на одном устройстве. Уведомление push на другом устройстве должно исчезнуть.

Это делается многими приложениями, например. Facebook Messenger, но как это реализовано?

(Swift)

ответ

1

Я думаю, что должно работать (с обычными оговорками):

  1. Отправить беззвучный толчок уведомление (content-available набор, без предупреждения/звук/значок в aps, но детали уведомления для использования в 2.)
  2. Создайте локальное уведомление с данными из 1, немедленно сообщите об этом и сохраните ссылку на него
  3. Когда пользователь действует в локальном уведомлении, отправьте запрос на сервер, чтобы он знать
  4. сервера посылает другое беззвучное уведомление всех других устройств для того же пользователь, давая им знать, чтобы удалить уведомление
  5. При получении отменить местное уведомление, созданное в 2.
+3

Это отличный способ, но есть ряд причин, по которым молчание push-уведомления может не прибыть (я знаю, я работал над этим полгода при настройке нового приложения): 1) когда пользователь отключается фоновая выборка для приложения (многие «полезные» племянники делают это для своей семьи) 2) когда пользователь убивает приложение, сдвигая его с экрана приложения-переключателя. Лучше всего отправить «обычный» push (с предупреждением/значком в «aps»), а также с набором контента. Не то, чтобы это могло вызвать толчок в два раза. – Joride

3

Вот один из способов я реализовал именно это:

  • при получении нажимного уведомления (он должен иметь вида, который имеет флаг «контент доступен» , так что оно доставляется вам, даже если пользователь не нажимает на него), приложение должно сделать звонок на ваш сервер, уведомив полученный сервер. Обратите внимание, что наличие этого флага означает, что ваше приложение может получать pushnotificatins дважды: один раз, когда он принимается системой, и второй раз, когда пользователь забирает его. Или это может вообще не прийти, но это еще одна дискуссия.
  • в ответ на этот вызов сервер должен отправить тихое push-уведомление (с необязательной пользовательской полезной нагрузкой) на другие устройства, зарегистрированные для этой учетной записи.
  • После получения этого push-уведомления другие клиенты установили приложение-баннер рассчитывать до нуля (это очистит push-уведомления из центра уведомлений. Это официально не документировано, поэтому он может перестать работать в будущей версии iOS).
+0

Спасибо вам ответить Joride, я выбрал ответ jcaron, потому что он кажется более ясным и лучше структурированным для меня, но тоже проголосовал за вас. – Manuel

+0

Спасибо за одобрение. Его ответ более краткий. Обязательно ознакомьтесь с моим комментарием и его ответом. – Joride

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