将URI前缀传递给带有react-navigation的深度链接的createSwitchNavigator函数

问题描述 投票:1回答:1

我使用react-navigation进行了相当简单的设置,它利用了一个接受参数paramSignIn的switch导航器来设置初始路由,如下所示:

const uriPrefix =
  Platform.OS === 'android'
    ? 'myApp://myApp/'
    : 'myApp://'

const createRootNavigator = (signedIn = false) => (
  createSwitchNavigator({
    LoginNav,
    AllNav: { screen: AllNav, uriPrefix, path: '' }
  }, {
    initialRouteName: signedIn ? 'AllNav' : 'LoginNav',
  })
);

然后我在RootContainer中称呼它:

 const Nav = Navigation(isLoggedIn);
 return (
    <Nav />
  )

在iOS上,此uriPrefix可以正常工作,我可以使用带有链接的Linking.openURL()链接到屏幕。

在Android上不起作用。我可以使它在Android上运行,而无需使用switchNavigator并仅导出LoginNav和AllNav,但我仍然需要switchNavigator。

我遵循了此处的说明:https://reactnavigation.org/docs/en/deep-linking.html,但是无法以其定义的方式传递uriPrefix。我发现,至少对于iOS,我能够在switchNavigator中进行定义,但对Android而言,它却无法正常工作。

android react-native react-navigation
1个回答
0
投票

看起来像是反应导航中的错误:https://github.com/react-navigation/react-navigation/issues/5027https://github.com/react-navigation/react-navigation/issues/4913

[这里有一些解决方法可能会有所帮助,我最终将所有导航更改为堆栈导航以支持深度链接=(

© www.soinside.com 2019 - 2024. All rights reserved.