Я настраиваю 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 - ›Тестовое сообщение -› Стандартное сообщение strong >). Также не работает сообщение 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": ""
}
}