Как я могу отправить сообщение из WebView в React Native? - PullRequest
0 голосов
/ 24 июня 2019

Мне успешно удалось отправить сообщение из React Native (RN) в WebView.

С чем я борюсь - это вернуть сообщение из WebView в RN.Нет ошибок, показывающих, просто сообщение никогда не проходит.

Вот код, который я использую:

React Native Code

<WebView
  ref={webview => (this.webview = webview)}
  source={{ uri: "http://www.my-web-site"}}
  onLoadEnd={() => this.onLoadEnd()}
  onMessage={this.onMessage}
  cacheEnabled={false}
  originWhitelist={['*']}
  javaScriptEnabled={true}
/>

onLoadEnd() {
  this.webview.postMessage("RN message");
}

onMessage(message) {
  console.log("I can’t see this message!");
}

Код WebView

document.addEventListener("message", function (event) {
  setTimeout(function(){document.postMessage("WebView message")}, 3000);
}, false);

Заранее большое спасибо.

Ответы [ 2 ]

1 голос
/ 24 июня 2019

Пожалуйста, убедитесь, что данные для каждого получателя включены, и используйте необходимые данные.

И всегда проверяйте предписанные документы, чтобы увидеть, как использовать параметры и грамматику перед их использованием.

RN

onLoadEnd() {

  this.webview.postMessage("sendmessage");
}

onMessage(event) {
  alert(event.nativeEvent.data);
}

Код WebView

document.addEventListener("message", function (event) {
    window.postMessage(event.data);
});
0 голосов
/ 25 июня 2019

О, наконец-то я наконец наткнулся на ответ. Это была строка кода, которую я изначально пытался использовать для отправки сообщения из RN в WebView. Оказывается, это был код, необходимый для отправки из WebView в RN:

Код WebView

document.addEventListener("message", function (event) {
  window.ReactNativeWebView.postMessage(event.data);
}, false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...