Вам необходимо правильно понять концепцию APNS. Взгляните на документы, чтобы понять это лучше :) Хотя, Лемм добавить ключевую информацию здесь, чтобы помочь вам :)
Есть несколько неправильных предположений у вас есть о APNS :)
Ошибка 1 " Если отправитель посылает уведомления APNs пользователю успешно»
Я считаю, что этим утверждением, вы имеете в виду пользователь, использующий приложение отправляет APNs другому пользователю с помощью APNs :)
к сожалению :) клиентские приложения IOS DonT напрямую говорить с APNS для отправки push-уведомлений :) Запрос на отправку push-уведомления может генерироваться в клиентском приложении iOS (например, пользовательский тип текста и клики по отправке). Приложение не будет напрямую обращаться к APNS и передавать полезную нагрузку на него :) Существует еще одна важная сущность, играющая очень важную роль в фон, который является вашим сервером приложений
Что происходит, когда я отправляю текст другому пользователю с использованием APNS? Ваше приложение должно собирать текст пользователя и отправлять его на ваш сервер приложений :) Затем ваш сервер приложений устанавливает двухстороннюю дрожание рук с помощью APNS :) После успешного создания полезной нагрузки в перкулярном формате :) получает идентификаторы устройств, к которым он должен передавать данные и отправляет его в APNS наконец APNS доставляет его к клиентским приложениям :)
Ошибка 2 Будет APNs сообщить об успехе или неудаче отправителю.
В документах Apple четко сказано, что APNS - это лучший сервис для усилий :). Это означает, что APNS не будет гарантией доставки каждого отправленного ему запроса :) и не дает никакой обратной связи относительно успешной доставки пакетов на стороне клиента:)
Все запросы, которые ваш сервер приложений отправляет в APNS, попадают в очередь и доставляются, когда APNS может их обрабатывать :) Если запрос-1 еще не обработан, а запрос-2 поступает с вашего сервера приложений на запрос APNS -1 будет отброшена, а запрос-2 будет обработан :)
Как с этим справиться? После получения сообщения приложение вашего приемника iOS должно поговорить с вашим сервером приложений и сообщить, что оно получило сообщение/пакет :)
Предположим, пользователь 1 отправляет 2 сообщения :) позволяет сказать message1 и сообщение 2 :) теперь ваш сервер приложений отправляет message1 в APNS, надеясь, что он доставит сообщение :) Если APNS отправит его пользователю 2, приложение пользователя 2 должно поговорить с вашим сервером приложений и сказать, что я получил сообщение 1 :) Теперь, когда пользователь 1 отправляет сообщение 2 вашей заявке сервер не знает, что сообщения не отправляются пользователю 2 :)
Если пользователь 1 отправляет сообщение 3, а пользователь 2 ничего не получает от APNS, когда пользователь 1 снова отправляет сообщение 4, а пользователь 2 сообщает, что он получил сообщение 4 ваше приложение сервер должен быть в состоянии определить, что он не получил подачу назад для messge 3 поэтому он должен повторно отправить его снова :)
Есть 100 других способов, чтобы сохранить ваш клиент и сервер в синхронизации :)
TIP Если вы разрабатываете приложение чата в зависимости от APNS не представляется возможным решением :) Надеюсь, что я наставил вас по крайней мере с концепцией :) Happy кодировали все лучшие
Спасибо, я уже реализовали APNs, и ее между Java клиент и приложение IOS, а не между двумя приложениями IOS. извините, чтобы смутить вас. В соответствии с ur Soln, что, если cleint отправляет уведомление, а пользователь не открывает приложение или его устройство, есть ли способ, чтобы лоток уведомлений IOS связывался с App или отправителем о его прибытии. флаг доступности контента уведомляет приложение о приходе нового уведомления, так что есть что-то подобное. Я знаю его странный, но отправитель хочет узнать, достигло ли уведомление приложения без действий пользователей в приложении или уведомлении. Монетные цели связаны с u. .. – ViS
Nope :) Я не думаю, что это возможно :) Когда push-уведомление получено, если ваше приложение не работает (находясь в фоновом режиме в течение длительного времени или будучи убитым) до тех пор, пока пользователь не нажмет на приложение уведомления не будет возобновлено :) без запуска приложения вы никогда не сообщаете другой стороне о приеме сообщения :) Ваш вопрос мог быть немного более конкретным, ваши комментарии четко показывают ваш опыт работы с APNS, но ваш вопрос звучал так, как будто вы новичок :) Вы могли бы сохранить несколько очков: | В следующий раз будьте немного более конкретными относительно вопроса и сообщения, что у вас сделано :) –
В любом случае :) доставка сообщений, статус чтения все должны быть реализованы как часть вашего приложения и сервера приложений, которые вы не можете зависеть от APNS :) Были ли вы когда-либо использовал чат-фреймворк, как «quickblox» ??? –