2

我已遵循此文档https://rnfirebase.io/docs/v4.1.x/links/android并能够运行adb shell am start -W -a android.intent.action.VIEW -d "https://abc123.app.goo.gl" com.myapp.superapp以启动应用程序。

如何打开动态链接https://abc123.app.goo.gl它打开VideoScreen并通过contentparam

Video:{
  screen : VideoScreen,
  path:'wvc/:contentparam',
}

所以我在点击https://abc123.app.goo.gl(动态链接)时尝试了这个:

componentDidMount () {
    Linking.getInitialURL().then((url) => {
      console.log('Initial url is: ' + url);
    }).catch(err => console.error('An error occurred', err));
}

然而应用程序打开但console.log给出null

4

2 回答 2

1

由于某种原因firebase.links().onLink((url)在 RNFB v6 中不起作用。这是 RNFB 维护者之一对这个错误的评论 https://github.com/invertase/react-native-firebase/issues/3008

使用应该使用 react nativeLink作为临时解决方法: https ://facebook.github.io/react-native/docs/0.47/linking

这是您可以使用的示例:

  useEffect(() => {
    Linking.getInitialURL()
      .then(url => {
        if (url) {
          console.log('Initial url is: ' + group);
        }
      })
      .catch(err => console.error('An error occurred', err));
  }, []);
于 2020-01-08T10:06:55.147 回答
0

您必须收听 Firebase 链接

componentDidMount() {
  const unsubscribe = firebase.links().onLink((url) => {
    console.log('dynamic links', url)
    // do navigate with url above
    // you have to handle your self
  });
}

componentWillUnmount() {
  unsubscribe()
}

文档:https ://rnfirebase.io/docs/v5.xx/links/reference/links#onLink

于 2018-12-19T11:40:27.843 回答