未使用react-native

时间:2018-09-19 12:33:30

标签: reactjs react-native deep-linking aws-pinpoint

我正在使用react-native和Amplify处理iOS和Android应用程序。推送通知的整个设置已完成。我可以将广告系列发送到所有设备或特定设备上-我可以在iOS和Android上收到通知。

此外,我在应用程序中启用了深层链接。在iOS上,我可以使用自定义方案键入一个url,它将要求我在应用程序中打开它并导航到正确的路线。在Android上,我使用adb shell am start -a android.intent.action.VIEW -d "*://*/do-something" com.*(虚拟);也可以。

但是,当我使用深层链接在Pinpoint中发送直接消息时,它所做的只是打开应用程序,而深层链接不是openend(https://i.imgur.com/652XoNQ.png)。即使使用转到URL ,该应用也是开放式的,而不是我指定的url。但是会收到(https://i.imgur.com/CCSBRyB.png)来自Pinpoint的数据


我使用以下软件包:

@aws-amplify/pushnotification": "^1.0.8",
"aws-amplify": "^1.0.10",
"react-native": "0.56.0",

要确保在我的应用程序中正在处理通知中的操作,需要进行哪些设置?我似乎找不到有关 Pinpoint动作 react-native 的任何文档。

1 个答案:

答案 0 :(得分:0)

更新: 在android上,您可以通过notification.data['pinpoint.url']访问数据,因此仅数据是一个对象,而键则使用点。奇怪的解决方案。

原始答案:

发布一个小时后出现相同的问题。

onNotification的放大库中有一个PushNotification方法。当notification到达时触发。在iOS上是PushNotificationIOS类型的通知,在Android上是普通对象(不确定此处是否还在调查)。

在iOS上,您可以通过notification.getData().data.pinpoint

访问数据

示例代码:

    PushNotification.onNotification((notification) => {
        if (Platform.OS === 'ios') {
          if (notification.getData().data.pinpoint.deeplink) {
            alert(notification.getData().data.pinpoint.deeplink);
          }
          notification.finish(PushNotificationIOS.FetchResult.NoData)
        } 
        else {
          if (notification.data && notification.data['pinpoint.deeplink']) {
            alert(notification.data['pinpoint.deeplink']);
          }
        }
    }

记住要导入所有必要的东西。

希望这会有所帮助。

干杯