防止堆栈导航器在打开具有深度 link 的反应本机应用程序时自动路由到屏幕
Prevent stack navigator from automatically routing to screen when opening react native app with a deep link
我有一个反应本机 iOS 应用程序,通过我们自己的服务生成的简短 url 来打开。 URL 看起来像我的网站。com/slr/xxxxxxxxx。 URL 通过以下代码处理。
Linking.canOpenURL(url).then(supported => {
if (supported) {
// my logic
}
});
现在的问题是,应用程序的堆栈导航器尝试读取 url 并将其重定向到名为 xxxxxxx
的屏幕,该屏幕不存在,因此会产生以下错误.
The action 'NAVIGATE' with payload {"name":"slr","params":{"initial":true,"screen":"xxxxxxxxxxxx"}} was not handled by any navigator.
如何在不更改 URL 或添加带有路由 xxxxxxx
的屏幕的情况下阻止此自动重定向?
我试过用下面的方法添加路由,但是stack navigator在回调后仍然重定向,所以这也不起作用。
DeepLinking.addRoute('/testurl.com/#/sign-in', response => navigate(‘signIn’))
您是否像这样在导航容器中定义了深层衬里?
const linking: LinkingOptions = {
config: {
screens: {
TabNavigator: {
screens: {
initialRouteName: 'YourInitRouteTab',
YourInitRouteTab: {
screens: {
YourScreen: {
path: 'screen/path/parameter?',
},
},
},
},
},
},
},
};
<NavigationContainer
linking={linking}
...
我有一个反应本机 iOS 应用程序,通过我们自己的服务生成的简短 url 来打开。 URL 看起来像我的网站。com/slr/xxxxxxxxx。 URL 通过以下代码处理。
Linking.canOpenURL(url).then(supported => {
if (supported) {
// my logic
}
});
现在的问题是,应用程序的堆栈导航器尝试读取 url 并将其重定向到名为 xxxxxxx
的屏幕,该屏幕不存在,因此会产生以下错误.
The action 'NAVIGATE' with payload {"name":"slr","params":{"initial":true,"screen":"xxxxxxxxxxxx"}} was not handled by any navigator.
如何在不更改 URL 或添加带有路由 xxxxxxx
的屏幕的情况下阻止此自动重定向?
我试过用下面的方法添加路由,但是stack navigator在回调后仍然重定向,所以这也不起作用。
DeepLinking.addRoute('/testurl.com/#/sign-in', response => navigate(‘signIn’))
您是否像这样在导航容器中定义了深层衬里?
const linking: LinkingOptions = {
config: {
screens: {
TabNavigator: {
screens: {
initialRouteName: 'YourInitRouteTab',
YourInitRouteTab: {
screens: {
YourScreen: {
path: 'screen/path/parameter?',
},
},
},
},
},
},
},
};
<NavigationContainer
linking={linking}
...