Android 将URI前缀传递给createSwitchNavigator函数,以便与react导航进行深度链接
我有一个相当直接的react导航设置,它利用一个开关导航器,它接受一个参数signedIn来设置初始路线,如下所示:Android 将URI前缀传递给createSwitchNavigator函数,以便与react导航进行深度链接,android,react-native,react-navigation,Android,React Native,React Navigation,我有一个相当直接的react导航设置,它利用一个开关导航器,它接受一个参数signedIn来设置初始路线,如下所示: const uriPrefix = Platform.OS === 'android' ? 'myApp://myApp/' : 'myApp://' const createRootNavigator = (signedIn = false) => ( createSwitchNavigator({ LoginNav, AllNa
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 />
)
const Nav=导航(isLoggedIn);
返回(
)
在iOS上,这与uriPrefix配合得很好,我可以使用带有链接的Linking.openURL()
链接到屏幕
在Android上,它不起作用。我不需要使用switchNavigator,只需要导出LoginNav和AllNav,就可以在Android上运行,但我仍然需要一个switchNavigator
我按照此处的说明进行操作:,但无法按照它们定义的方式传递URI前缀。我发现,至少在iOS上,我可以在switchNavigator中定义它,但在Android上它的工作原理与此不同。看起来这是react导航中的一个错误:
这里有一些解决方法可能会有所帮助,我最终将所有导航更改为堆栈导航以支持深度链接=(看起来这是react导航中的一个错误: 有一些解决方法可能会有所帮助,我最终将所有导航更改为堆栈导航以支持深度链接=(