React Native: Как получить транзакцию Moneris для возврата в приложение? - PullRequest
0 голосов
/ 25 октября 2019

Я обрабатываю транзакцию с Moneris в моем приложении React Native в WebView. URL в моем WebView содержит учетные данные моей конфигурации Hosted PayPage в качестве параметров URI. При создании этой конфигурации на сайте Moneris мне нужно указать URL-адрес размещенной платежной страницы для перенаправления после завершения транзакции. Когда я ввожу что-то вроде https://www.google.ca/ в качестве обратного вызова, он работает нормально, но я не знаю, какой URL обратного вызова мне нужно будет ввести, чтобы вернуться в мое приложение.

Что я хочу сделатьЗнаете:

Какой URL-адрес обратного вызова мне нужно будет использовать, чтобы вернуться в приложение React Native?

1 Ответ

1 голос
/ 26 октября 2019

WebView - это просто компонент внутри вашего приложения, поэтому вы никогда не покидаете свое приложение. Сначала убедитесь, что страница отображается в WebView, а не запускает браузер как отдельное приложение и открывает там страницу (в этом случае вы не можете вернуться к своему приложению программно). Затем, если вы на самом деле используете компонент WebView, вы можете, например, сделать следующее: добавить слушателя NavigationState к вашему WebView и прочитать URL-адрес, по которому перемещается WebView, и принять соответствующие меры

class MyComponent extends React.Component{

  onNavigationStateChange = (navState) => {
    if (navState.url === 'https://www.yoursite.com') {
      // user just got redirected to requested site
      // do something in react-native app now, for example
      // close this component and show another one
    }
  }

  render(){
    return <View>
      <WebView
      ...
      onNavigationStateChange={this.onNavigationStateChange}
    />
    </View>
  }
}
...