微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用AWS Amplify iOS接收消息的APNS消息结构是什么,以便正确触发onNotification事件?

如何解决用AWS Amplify iOS接收消息的APNS消息结构是什么,以便正确触发onNotification事件?

我通过@ 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

有人知道amplify是否期望某个有效负载来触发事件?还是其他原因导致这种情况..

到目前为止已测试的结构:

SNS自定义结构

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

Pinpoint原始消息

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

解决方法

解决方案是添加内容可用的内容和其他数据,以访问放大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\"}}"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?