0

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

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

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


我使用以下软件包:

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

确保在我的应用程序中处理通知中的操作所需的设置是什么?我似乎找不到任何有关Pinpoint 操作react-native 的文档。

4

1 回答 1

0

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

原始答案:

发布后一个小时也遇到了同样的问题。

放大库上有一个onNotification方法。它在 a到达时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']);
          }
        }
    }

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

希望这会有所帮助。

干杯,

于 2018-09-20T15:03:04.973 回答