@aws-amplify/pushnotification から PushNotification.onNotification を次のようにセットアップします。
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);
}
});
Androidでは問題なく動作しています。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 -> テスト メッセージング -> 標準メッセージを使用すると、フォアグラウンド/バックグラウンドの両方でイベントがトリガーされます)。また、Raw メッセージの特定も機能しません。SNS 同一/カスタム ペイロードが機能しない。
https://github.com/react-native-push-notification-ios/push-notification-ios#augment-appdelegateに従って AppDelegate を拡張しました
イベントをトリガーするために、増幅が特定のペイロードを期待しているかどうかは誰にもわかりますか? または、他の何かがこれを引き起こしている可能性がある場合..?
これまでにテストされた構造:
SNS カスタム構造
"APNS_SANDBOX": "{\"aps\":{\"alert\":\"Sample message for iOS development endpoints\"}}"
}
生メッセージの特定
{
"APNSMessage": {
"aps": {
"alert": ""
}
},
"GCMMessage": {
"data": {
"message": ""
}
},
"ADMMessage": {
"data" : {
"message": ""
}
},
"BaiduMessage": {
"title":"",
"description": ""
}
}