Правильный способ отправить pu sh, чтобы разбудить приложение с предупреждением баннера (и звук) - PullRequest
1 голос
/ 03 марта 2020

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

Я понимаю, что более новый API (UserNotifications) диктует парадигму, в которой следует отправлять фоновое оповещение , полученные данные и новое локальное уведомление отправлено пользователю, однако мы не в состоянии в настоящее время рефакторинг полезных нагрузок, отправленных в APNS. (хотя мы могли бы быть при необходимости)

Предполагая, что наша полезная нагрузка основана на задокументированной полезной нагрузке здесь (https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification)

{
   “aps” : {
      “alert” : {
         “title” : “Game Request”,
         “subtitle” : “Five Card Draw”
         “body” : “Bob wants to play poker”,
      },
      "content-available": 1 // ** We add this here, to alert the user & wake the app **
      “category” : “GAME_INVITATION”
   },
   “gameID” : “12345678”
}

Примечание. Мы дополнительно добавим content-available: 1 к этой полезной нагрузке. В нашем сообщении APNS мы указываем тип alert.

Ранее iOS предупреждал пользователя об уведомлении и запускал приложение, если оно было в фоновом режиме. Такое поведение, похоже, прекратилось, так как теперь приложения больше не просыпаются в фоновом режиме (но оповещения по-прежнему поступают).

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

1 Ответ

1 голос
/ 03 марта 2020

Пожалуйста, удалите 'apns-pu sh -type' из сообщения в apns.

Это вернется к предыдущей функциональности, где будет отображаться предупреждение, а также активируется приложение. Я не гарантирую какой-либо период времени, как долго это будет работать, потому что это обязательное поле в будущем. Поэтому убедитесь, что ваш бэкэнд изменяет свою полезную нагрузку на apns, как только интерфейс поддерживает новую архитектуру.

:) Удачного кодирования Фред!

...