В официальном документе Apple Developer Network упоминается, что полезная нагрузка push-уведомления предоставляется приложению, когда оно работает на переднем плане или когда оно активировано из-за push-уведомления.Я не могу найти утверждение о том, что происходит, когда приложение работает в фоновом режиме.
Я провел тест с приложением для мгновенных сообщений и обнаружил что-то, чего я не понимаю.Процедура проверки:
- Включение push-уведомлений для приложения
- Переключение приложения в фоновый режим
- Отправка двух мгновенных сообщений клиенту.Клиент получает два push-уведомления, и значок на значке приложения становится 2
- Завершить работу сотовой сети, чтобы приложение не связывалось с сервером
- Щелкните значок приложения, чтобы переключить его на передний план
После этих шагов я вижу 2 сообщения в окне чата.Поскольку приложение не может получать сообщения непосредственно с сервера, единственное объяснение состоит в том, что push-уведомления обрабатываются приложением, когда оно находится в фоновом режиме, или они где-то кэшируются и могут быть доступны приложению, когда оно переключено на передний план.Но действительно ли iOS позволяет приложению выполнять коды в фоновом режиме или кэшировать уведомления для приложений?