使用 AWS Amplify iOS 接收消息以便正确触发 onNotification 事件的 APNS 消息结构是啥?
Posted
技术标签:
【中文标题】使用 AWS Amplify iOS 接收消息以便正确触发 onNotification 事件的 APNS 消息结构是啥?【英文标题】:What is the APNS message structure to receive message with AWS Amplify iOS so the onNotification event is properly triggered?使用 AWS Amplify iOS 接收消息以便正确触发 onNotification 事件的 APNS 消息结构是什么? 【发布时间】:2020-10-28 15:22:07 【问题描述】:我像这样从@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 -> 测试消息 -> 标准消息时,前台/后台都会触发事件)。 Pinpoint Raw 消息也不起作用。 SNS 相同/自定义负载不起作用。
我根据以下内容扩充了 AppDelegate https://github.com/react-native-push-notification-ios/push-notification-ios#augment-appdelegate
有人知道放大是否需要某个有效载荷来触发事件吗?或者是否有其他原因可能导致这种情况..?
目前测试的结构:
SNS 自定义结构
"APNS_SANDBOX": "\"aps\":\"alert\":\"Sample message for iOS development endpoints\""
查明原始消息
"APNSMessage":
"aps":
"alert": ""
,
"GCMMessage":
"data":
"message": ""
,
"ADMMessage":
"data" :
"message": ""
,
"BaiduMessage":
"title":"",
"description": ""
【问题讨论】:
【参考方案1】:解决方案是添加内容可用和附加数据,以访问放大 PushNotification 在 iOS 中的标题、正文和数据。
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\""
【讨论】:
以上是关于使用 AWS Amplify iOS 接收消息以便正确触发 onNotification 事件的 APNS 消息结构是啥?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Amplify 将现有 AWS Cognito 用户池集成到 iOS 项目中
Flutter 与 AWS 的集成(有和没有 Amplify)
AWS Amplify Swift API 登录 iOS 移动应用程序