如何从WebView发送消息到React Native?

时间:2019-06-24 13:08:27

标签: react-native react-native-webview

我已经成功地将消息从React Native(RN)发送到WebView。

我正在努力的是,将消息从WebView传回RN。没有错误显示-只是消息永远不会通过。

这是我正在使用的代码:

反应本机代码

<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 个答案:

答案 0 :(得分:1)

请确保已插入每个接收器的数据,并使用所需的数据。

在使用它们之前,请务必先检查规定的文档以了解如何使用参数和语法。

RN

<button type="button" class="mt-2 btn btn-secondary" (click)="onButtonClick(imagenPortada)">Ver detalles</button>

WebView代码

onLoadEnd() {

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

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

答案 1 :(得分:0)

哦,终于,我终于找到答案了。这是我最初试图用来将消息从RN发送到WebView的一行代码。原来,这是从WebView发送到RN所需的代码:

WebView代码

document.addEventListener("message", function (event) {
  window.ReactNativeWebView.postMessage(event.data);
}, false);