我正在尝试在react-native中的webView和使用React-360创建的web应用(当然还有React)之间创建一种通信。我正在使用react-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)中调用我的web应用程序,例如使用如下函数:
homeButtonClicked() {
console.log("sei uscito, torna all'App!")
window.ReactNativeWebView.postMessage(data);
}不幸的是,当我点击按钮时,我得到了以下错误:Cannot read property 'postMessage' of undefined。如何解决此问题?感谢所有人。
发布于 2020-06-18 04:48:36
您可以尝试使用文档中的超时功能吗
setTimeout(function () {
window.ReactNativeWebView.postMessage("Hello!")
}, 2000)发布于 2020-06-18 14:32:37
我在React-360仓库的一个老问题中找到了这个问题的解决方案。React-360代码无法访问window,因此有必要将代码放在本机模块中,从那里可以向react-native应用程序发送消息。链接到该问题:https://github.com/facebook/react-360/issues/241
https://stackoverflow.com/questions/62434249
复制相似问题