【问题标题】:getInitialLink is not working but onLink is working in react-native-firebase v6getInitialLink 不起作用,但 onLink 在 react-native-firebase v6 中工作
【发布时间】:2020-02-14 18:16:27
【问题描述】:

我在 App.js 中使用以下代码 - componentDidMount

    firebase
      .dynamicLinks()
      .getInitialLink()
      .then(link => {
        if (link) {
          if (link.url.includes('/s/')) {
            this.handleSignupURL(link.url)
          }
        }
      })


    firebase.dynamicLinks().onLink(({ url }) => {
      if (url && url.includes('/s/')) {
        this.handleSignupURL(url)
      }
    })
  }

点击动态链接时:当应用程序处于活动状态时,会触发 onLink 处理程序并且应用程序会正确处理它。但是当应用程序关闭时,getInitialLink 返回 null。获取初始链接的任何解决方案?

我正在使用 react-native-firebase v6,react-native 对应 expo 36。安装按照新的 react-native-firebase quick start 执行。我正在使用 iOS 应用程序。

【问题讨论】:

    标签: ios react-native firebase-dynamic-links react-native-firebase


    【解决方案1】:

    我现在在 iOS 上也遇到了这个问题。我不确定这是否是一个很好的解决方法,因为我还没有投入生产,但是当应用程序不在后台时,我可以在 iOS 上工作的一种方法是使用来自 RN 的 Linking 包,就像在我的启动画面中一样:

            Linking.getInitialURL().then((url) => {
                if (url){
                    Linking.openURL(url).then((response) => {
                        Actions.reset('MainFeed');
                    });
    
                } else {
                    console.log('no url');
                    Actions.reset('MainFeed');
                }
            });
    

    然后在 MainFeed 屏幕上的 componentDidMount 上,我为 onLink 设置了一个侦听器。由于我们现在在应用程序打开时调用 openURL,因此来自 firebase 的 onLink 触发,我能够解析深层链接并将用户路由到他们需要去的地方。

    我还没有测试过这种方法是否允许链接到持久的应用商店安装

    编辑:我已经对此进行了测试,并且它一直有效。该链接通过应用商店/谷歌播放下载仍然存在

    【讨论】:

      猜你喜欢
      • 2020-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-06
      • 1970-01-01
      • 2022-08-08
      相关资源
      最近更新 更多