2016-03-13 2 views
1

Я создаю функцию чата на iOS. Я использую систему публикации/подписки PubNub для отправки сообщений между клиентами.Запретить push-уведомления, которые будут отправлены вам при публикации в PubNub

Проблема:

Всякий раз, когда я публикую на канал, который я подписался, я также получить толчок уведомление о сообщении я отправил. Хотя, я могу просто игнорировать это, когда приложение находится на переднем плане, проблема возникает, когда уведомление задерживается, и приложение переходит в фоновый режим.

Я бы хотел получать уведомления о толчке, когда другие люди отправляют сообщения на канал. Не имеет смысла получать уведомление о том, что вы отправили сообщение.

Решение, которое я рассматриваю, создает дополнительные каналы только для push-уведомлений, но я считаю, что это неэффективно и немного взломано. Скажите, пожалуйста, другое решение.

ответ

1

Реализация

Лучшее решение PubNub идентификации отправителя является использование молчащие уведомления толчка и включают UUID отправителя в полезной нагрузке сообщения. Вот пример:

{ 
    'pn_apns': { 
     'aps': { 
      'content-available':1 
     }, 
     'sender_id':'user123', 
     'content':'this could be more key/values that you can process on the device' 
    }, 
    'data': 'realtime key/values goes here' 
} 

Затем в тихой нажимной обработки на устройстве, вы можете сделать:

if uuid != my_uuid then display msg; else do nothing 

Вы можете использовать наше Badge Count Demo приложение, которое использует бесшумные уведомления толчка, чтобы принести историю, когда молчаливое толчок на устройство поступает уведомление, чтобы рассчитать точное количество значков. Просто замените код извлечения истории с это от меня код.

Вы также должны ознакомиться с Configuring a Silent Notification Apple Documentation, чтобы узнать подробности о том, как работает тихий толчок.

Уведомления Android push молчат по умолчанию, и вы должны явно отображать их так, чтобы они могли работать на этой платформе с GCM, если это необходимо.

В ближайшее время будет более элегантное решение, но пока эти усовершенствования не будут развернуты, вышесказанное должно предоставить вам то, что вам нужно.