在使用重定向 URL 在浏览器中成功进行身份验证后,我尝试深层链接回我的应用程序。应用程序本身有一些嵌套的导航器,因此设置如下所示:
外层堆栈:
return (
<SafeAreaProvider>
<NavigationContainer
theme={theme}
linking={linking}>
<Stack.Navigator
screenOptions={{
headerShown: false,
gestureEnabled: false
}}>
<Stack.Screen name="Login" component={LandingStackScreen} options={{
gestureEnabled: false,
}}/>
<Stack.Screen name="Home" component={HomeTabScreen} options={{
gestureEnabled: false,
}}/>
<Stack.Screen name="Logout" component={LogoutStackScreen} options={{
gestureEnabled: false,
}}/>
<Stack.Screen name="Register" component={RegistrationStackScreen} options={{
gestureEnabled: false,
}}/>
</Stack.Navigator>
</NavigationContainer>
</SafeAreaProvider>
)
};
}
内部堆栈 1(主堆栈):
function HomeTabScreen() {
return (
<HomeTab.Navigator
tabBarOptions={{
activeTintColor: '#059693',
inactiveTintColor: 'gray',
}}
sceneContainerStyle={{backgroundColor: 'transparent'}}
tabBar={props => <MyTabBar {...props} key={1} />}
>
<HomeTab.Screen name="Home" component={HomeStackScreen}/>
<HomeTab.Screen name="Analytics" component={AnalyticsStackScreen}/>
<HomeTab.Screen name="Add" component={Testing}/>
<HomeTab.Screen name="Dummy" component={Testing}/>
<HomeTab.Screen name="Coach" component={CoachDrawerScreen}/>
<HomeTab.Screen name="Profile" component={SettingsStackScreen}/>
</HomeTab.Navigator>
);
}
和内部堆栈 2(分析堆栈):
function AnalyticsStackScreen() {
return (
<AnalyticsStack.Navigator
screenOptions={{
headerShown: false,
}}>
<AnalyticsStack.Screen name="History" component={History} />
<AnalyticsStack.Screen name="Trends" component={Trends} />
<AnalyticsStack.Screen name="widgetpage" component={widgetPage} />
<AnalyticsStack.Screen name="widgetsuccess" component={successfulWidgetLogon} />
</AnalyticsStack.Navigator>
);
}
我试图将应用程序重定向到分析堆栈(内部堆栈 2)中的 widgetsuccess 组件。我设置了一个像这样的链接道具:
const linking = {
prefixes: ['https://myapp.com', 'myapp://'],
config: {
screens: {
Home: {
screens: {
Analytics: {
widgetsuccess: "widgetsuccess?:userId&:resource"
}
}
}
},
},
};
我还更改了 Android 清单以添加“myapp”方案和“widgetsuccess”主机,以及 android:launchMode="singleTask" 和其他所需的意图过滤器更改。重定向网址将如下所示:“myapp://widgetsuccess?userId=xxx-xxx-xxx&resource=xxx”。
当应用程序成功进行身份验证和重定向时,它只会将我带回应用程序原来所在的同一页面。我尝试重定向到初始主页或任何其他页面,但同样的事情发生了。我显然做错了什么,但不知道是什么,所以如果有人有想法,我将非常感谢帮助。干杯。
我也有同样的问题。原因在于重定向网址。
根据您的配置,我将测试类似 myapp://Home/Analytics/widgetsuccess?userId=xxx-xxx-xxx&resource=xxx 的内容
请注意,像 myapp:// 这样的链接适用于 ios,但在 Android 上有问题。对于android,我使用intents,url像intent://...