Экспо и реагирование навигации глубокие ссылки в среде разработки - что я не так? - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь заставить веб-просмотр перенаправить на другой экран, как только пользователь нажимает на ссылку в веб-просмотре / iframe.

Экраны. 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, которая является страницей, которая загружается при загрузке приложения .. опрос загружается в веб-просмотр. Когда пользователь щелкает ссылку FINISH, я хочу, чтобы пользователь перенаправлялся на ленту новостей, например: я думал, что это было:

exp://localhost:19000/home/newsfeed - но любой путь, кроме пустого (exp: // localhost: 19000) просто ломается .. Чего мне не хватает?

Я знаю, что на производстве мне нужно будет изменить домен на мою схему, например myapp: //, или использовать метод связывания, который автоматически изменяет префикс в Ури.

Но сейчас я просто хочу, чтобы это работало в среде разработчиков.

enter image description here

enter image description here

1 Ответ

0 голосов
/ 21 апреля 2020

Я думаю, что нашел обходной путь - хотя это отвратительно нахально, хаха

Экран, который отображает 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/a-path-to-load' }} style={styles.WebView} />
 37     )
 38   };
 39 }

Так что, по сути, ловит перенаправление на указанный c путь до того, как это произойдет, и использование реагирующего навигатора на go вместо экрана в приложении.

...