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

React Native:在特定的Deeplink URL中打开推送通知

如何解决React Native:在特定的Deeplink URL中打开推送通知

我正在尝试通过推送通知在特定屏幕上打开应用。我的理解是,我使用“深层链接”来执行此操作。我已经设置了react-navigation来处理深层链接(以及AndroidManifest.xml和appDelegate.m),并且可以使用xcrun simctl openurl booted myapp://a/1 / adb shell am start -W -a android.intent.action.VIEW -d "myapp://a/1" app.bundle.name打开深层链接

但是,当应用程序关闭时,我无法通过深度链接获得推送通知以打开该应用程序;只会在主屏幕上(在iOS和Android上)打开应用。如何在深层链接中打开该应用程序(或者读取阅读推送通知内容,以便自己可以导航至正确的屏幕)?

库版本:

  • 本机0.62.2
  • @ react-navigation 5.5.1
  • react-native-fcm 16.2.4

解决方法

经过一些调试后,我发现这实际上是我的代码处理通知中的问题。我正在检查通知正文中的ID属性,但并非所有通知都有一个。因此,一旦我删除了它,它便开始工作。因此,要使其正常工作,您应该具有以下内容:

// push handler component
class PushHandler extends React.Component {
  componentDidMount() {
    FCM.getInitialNotification(notification => {
      if (!notification) {
        // the app was not opened with a notification.
        return;
      }

      // extract route from `notification` here

      this.props.navigation.navigate(route);
    }
  }

  // ... rest of push notification handling code
}

它与深层链接也没有任何关系。 this.props.navigation.navigate只是普通的应用内导航。

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