因此,我正在从事这个项目,正在解决IOS上的深层链接问题。
问题在于应用程序的行为是当您打开由我的应用程序创建的链接或共享链接时: https://www.sampleurl.com/?property=555
该应用程序打开(以前关闭,未在后台运行),几秒钟后它将返回我的欢迎屏幕。 我希望它只停留在特定屏幕(“属性详细信息”屏幕)上。
以下是打开应用程序的代码:
loadApp = async () => {
const hasLoggedIn = await AsyncStorage.getItem('has_logged_in');
const defaultBiz = await AsyncStorage.getItem('biz_view');
if (hasLoggedIn && defaultBiz === '1') {
Api.getToken();
this.props.navigation.navigate('Biz');
} else {
if (hasLoggedIn) {
Api.getToken();
}
setTimeout(() => {
this.props.navigation.navigate('Auth');
const prop_id = this.props.navigation.getParam('property_id');
}, 3000);
}
};
此函数正在传递给
componentDidMount(){
this.loadApp();
}
这是堆栈导航器:
const AppNavigator = createSwitchNavigator(
{
AuthLoading: {
screen: AuthLoadingScreen,
path: ''
},
Auth: {
screen: AuthStackNavigator,
path: ''
},
App: {
screen: MainAppNavigator,
path: ''
},
Biz: {
screen: BizAppNavigator,
path: ''
}
},
{
initialRouteName: 'AuthLoading'
}
);
所以我的调查结果是,由于设置了延迟(setTimeOut => 2000 ms),我能够在几秒钟内看到特定的属性详细信息(在PropertyDetailScreen上)。
我想创建一个条件,如果该应用程序从深层链接接收到数据,它将不会在“ Auth”(包括我的WelcomeScreen)上进行导航。有什么方法可以从深层链接中接收特定的数据/信息?
我想要发生的正确行为是,当我打开URL时,应用程序将直接转到特定的属性详细信息(在PropertyDetailScreen上呈现),而不会返回到我的WelcomeScreen(“验证”)>
Auth =至我导出的AuthStackNavigator
const AuthStackNavigator = createStackNavigator({
Welcome: WelcomeScreen,
Login: LoginScreen,
Verification: VerifyMobileScreen,
ProfileUpdateName: ProfileUpdateNameScreen
});
在android上,安装程序运行正常。