У меня довольно прямолинейная настройка с реагирующей навигацией, которая использует навигатор-переключатель, который принимает параметр SignIn для установки начального маршрута, который выглядит следующим образом:
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.