我正在我的应用程序中使用react-navigation@1.5.0并通过SSO实现。 工作流程是这样的:
myapp://authentication/<auth_code>
,这将正确地重新打开我的应用。很遗憾,我无法检测到任何路径/路线更改。
我的路线设置如下:
export const RootNavigator = StackNavigator(
{
Login: {
screen: Login,
path: '/login',
navigationOptions: {
title: 'Log In'
}
},
SsoHandler: {
screen: SsoHandler,
path: '/authentication/:authCode'
},
SignedIn: {
screen: MainApp,
path: '/'
}
}
);
我遇到的问题是我正在从联合身份验证服务重定向回我的iOS应用
仍然会打开Login
屏幕,并且我没有检测到任何路线更改或道具更改,因此我最终可以导航到SsoHandler
。
由于某种原因,我本来希望StackNavigator
检测到该路线并打开SsoHandler
上的Login
而不是/authentication/<auth_code>
。
什么是正确的方法?
谢谢你, 安德里亚斯
答案 0 :(得分:1)
深入研究之后,我发现我必须使用Linking.addEventListener
来通过深度链接来监听URL的更改。
React Native Linking显示了实现此目标的必要步骤。