Какова структура сообщения APNS для получения сообщения с помощью AWS Amplify iOS, чтобы событие onNotification запускалось должным образом?

Я настраиваю PushNotification.onNotification из @ aws-ampify / pushnotification следующим образом:

      if (notification.foreground) {
        console.log('notification received in foreground ', notification);
      } else {
        console.log('notification received in background ', notification);
      }

      if (PushNotificationIOS !== undefined) {
        notification.finish(PushNotificationIOS.FetchResult.NoData);
      }
    });

На Андроиде работает нормально. В iOS я не могу инициировать события onNotification / onNotificationOpened, хотя я получаю уведомления. Это особый случай, когда я отправляю стандартное сообщение через Pinpoint - ›Test Messaging, которое фактически запускает функцию, и когда я регистрирую уведомление, оно выглядит следующим образом

'notification received in background ', 
{ _data: 
{ remote: true,
notificationId: '45BAA2A6-8676-402E-8E6B-03A69173AC8C' },
_remoteNotificationCompleteCallbackCalled: false,
_isRemote: true,
_notificationId: '45BAA2A6-8676-402E-8E6B-03A69173AC8C',
_alert: { title: ' test', body: 'qwerty' },
_sound: undefined,
_badgeCount: undefined,
_category: undefined,
_contentAvailable: 1,
_threadID: undefined }

(уведомление было получено на переднем плане, но сообщение не содержит этой информации, поэтому оно печатается как фон. Как передний план, так и фон вызовут событие при использовании Pintpoint - ›Тестовое сообщение -› Стандартное сообщение ). Также не работает сообщение Pinpoint Raw. SNS Identical / custom payload не работает.

Я увеличил AppDelegate в соответствии с https://github.com/react-native-push-notification-ios/push-notification-ios#augment-appdelegate

Кто-нибудь знает, ожидает ли ampify определенная полезная нагрузка, чтобы вызвать событие? Или это может быть что-то еще?

Структуры, протестированные на данный момент:

Индивидуальная структура SNS

  "APNS_SANDBOX": "{\"aps\":{\"alert\":\"Sample message for iOS development endpoints\"}}"
}

Определить необработанное сообщение

{
    "APNSMessage": {
        "aps": {
            "alert": ""
        }
    },
    "GCMMessage": {
        "data": {
            "message": ""
        }
    },
    "ADMMessage": {
        "data" : {
            "message": ""
        }
    },
    "BaiduMessage": {
        "title":"",
        "description": ""
    }
}

person Henrik Rosenborg    schedule 28.10.2020    source источник


Ответы (1)


Решение заключалось в том, чтобы добавить доступный контент и дополнительные данные для доступа к заголовку, телу и данным в iOS для усиления PushNotification.

{
  aps: {
    alert: {
      title: "title",
      body: "message"
    },
    "content-available": "1",
    key1: "value",
    key2: "value",
  },
}

Струнный

"{\"aps\":{\"alert\":{\"title\":\"title\",\"body\":\"message\"},\"content-available\":\"1\",\"key1\":\"value\",\"key2\":\"value\"}}"
person Henrik Rosenborg    schedule 04.11.2020