как общаться между WebView, ориентированным на реакцию, и веб-приложением React? - PullRequest
1 голос
/ 17 июня 2020

Я пытаюсь создать связь между webView в react-native и веб-приложением, созданным с помощью React-360 (и, конечно, React). Я использую response-native-webview и следую этому руководству по этой ссылке, чтобы создать сообщение: https://github.com/react-native-community/react-native-webview/blob/master/docs/Guide.md Используя пример на странице, с простой страницей html (как в пример в ссылке) с функцией window.ReactNativeWebView.postMessage(data) в разделе сценария, он работает хорошо:

 <WebView
  source={{uri: this.props.link}}

    ref={( webView ) => this.webView = webView}

    onMessage={event => {
      alert(event.nativeEvent.data);
    }}
  />

Однако моя цель - вызвать в моем веб-приложении внутри webView window.ReactNativeWebView.postMessage(data), когда я нажимаю кнопку, например, с такой функцией:

homeButtonClicked() {
    console.log("sei uscito, torna all'App!")
    window.ReactNativeWebView.postMessage(data);
}

К сожалению, когда я нажимаю кнопку, я получаю следующую ошибку: Cannot read property 'postMessage' of undefined. Как я могу решить эту проблему? Всем спасибо.

Ответы [ 2 ]

0 голосов
/ 18 июня 2020

Я нашел себе решение проблемы в старой проблеме внутри репозитория React-360. Код React-360 не может получить доступ к окну, поэтому необходимо поместить код в собственный модуль, и оттуда можно отправить сообщение в приложение, поддерживающее реакцию. Ссылка на выпуск: https://github.com/facebook/react-360/issues/241

0 голосов
/ 17 июня 2020

Можете ли вы попробовать с функцией тайм-аута, как в do c

setTimeout(function () {
   window.ReactNativeWebView.postMessage("Hello!")
}, 2000)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...