在开发人员环境中展示和反应导航深层链接-我错在哪里?

问题描述 投票:0回答:1

[我正在尝试使Web视图将用户重定向到其他屏幕,只要用户单击WebView / iframe中的链接。

Screens.js

const AppStack = createBottomTabNavigator(
  {
    Ritual: {
      screen: RitualScreen,
    },
    Home: {
      screen: HomeScreen,
    },
    NewsFeed: {
      screen: WallScreen,
      path: 'newsfeed'
    }...


const AppContainer = createAppContainer(
  createSwitchNavigator(
    {
      AuthLoading: AuthLoadingScreen,
      App: {screen: AppStack, path: 'home'},
      Auth: AuthStack
    },
    {
      initialRouteName: 'AuthLoading',
    }
  )
);

export default AppContainer;

然后在RitualScreen上,该页面是在应用加载时加载的页面。在Web视图中加载了调查。当用户单击FINISH链接时,我希望将用户重定向到新闻源,例如:我以为是:

exp://localhost:19000/home/newsfeed-但空路径(exp:// localhost:19000)之外的任何路径都将中断。我缺少什么?

我知道在生产环境中,我需要将域更改为myapp://之类的方案或使用自动更改uri中前缀的链接方法。

但是现在我只想在开发环境中运行它。

enter image description here

enter image description here

react-native react-navigation expo deep-linking
1个回答
0
投票

[我想我已经找到了解决方法-尽管令人讨厌的厚脸皮,哈哈

呈现Webview的屏幕...

 20   render() {
 21     return (
 22       
 32       <WebView
 33         onNavigationStateChange={ 
             (e) => { 
               if(e.url == "https://www.google.com/") this.props.navigation.navigate("NewsFeed")
             }
          }
 34       source={{ uri: 'https://s.surveyanyplace.com/ifermstiddd' }} style={styles.WebView} />
 37     )
 38   };
 39 }

因此,本质上是在将要发生的重定向之前捕获到特定路径,并使用react导航器代替地转到应用程序内的屏幕。

© www.soinside.com 2019 - 2024. All rights reserved.