Я отправляю уведомления apn pu sh с моего node.js сервера с пользовательской нагрузкой.
JSON моего уведомления apn выглядит следующим образом:
{
"aps" : {
"alert" : "New message",
"badge" : 0,
"mutable-content" : 1,
"priority" : "10",
"push-type" : "alert"
},
"payload" :{
"type" : "messageId",
"data" : "directMessage-b5eeb02ed6dfaa1952026859c817db67b8efbadd17953dbb69c2184aabc57120d07bf6fedcbc231ec4c8924e2e4a68cf2dbb4fd251cfd579f6d4663af2cd469a",
"receiver" : "0RHRHRH"
}
}
Затем я создал расширение службы уведомлений в XCode для получения уведомлений, пока мое приложение находится в фоновом режиме. При получении такого уведомления pu sh мое приложение отправляет сетевой HTTP-запрос на мой node.js сервер и запрашивает messageId, который находится в полезной нагрузке под данными. Это работает, когда приложение было недавно закрыто или находится на переднем плане. Однако это не так, когда приложение работает в фоновом режиме уже какое-то время или устройство заблокировано. Затем требуется некоторое время для доставки на устройство, а затем просто показывает «Новое сообщение». В XCode говорится, что происходит сбой при сетевом вызове.
Почему я не могу выполнить сетевой вызов в расширении службы уведомлений, когда приложение находится в фоновом режиме. В примере на веб-сайте разработчика приложений Apple также делают сетевой вызов для загрузки изображения и прикрепления его к уведомлению.
Есть ли другой способ обработки фоновых уведомлений Pu sh, которые должны отображаться для пользователя (Сообщения чата)?