首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >react-native-webview this.webView.postMessage不工作

react-native-webview this.webView.postMessage不工作
EN

Stack Overflow用户
提问于 2020-04-03 17:35:27
回答 2查看 2.8K关注 0票数 0

以前的版本不起作用,因为它是新的。

"react-native-webview":"^9.0.2“"react-native":"0.62.0",

代码语言:javascript
复制
2. webview options
javaScriptEnabled={true}
mediaPlaybackRequiresUserAction={false}
startInLoadingState={true}
allowUniversalAccessFromFileURLs={true}
onMessage={this.respondToOnMessage}

3. react-native code
this.webView.postMessage( "Post message from react native" );

4. web code

function receiveMessage(e) {
    callbackFunction(JSON.parse(e.data));
}
function RNPostMessage(data) {
    window.ReactNativeWebView.postMessage(data);
}
window.addEventListener('message', receiveMessage, true);

5. react-native error msg
D:\dev\projects\mobile-app\react-native\yc_attend\node_modules\react-devtools-core\dist\backend.js:32 Possible Unhandled Promise Rejection (id: 0):
TypeError: Cannot read property 'postMessage' of undefined
TypeError: Cannot read property 'postMessage' of undefined

我想知道这个问题的解决方案。

EN

回答 2

Stack Overflow用户

发布于 2020-04-03 17:48:14

您必须尝试执行injectJavascript而不是this.webview.postMessage()。我以前也这样做过&伸手让我的数据出现在webview中。尝试在react-native的inject Javascript中使用window.postMessage。在react-native-webview中有注入javascript的属性。

票数 2
EN

Stack Overflow用户

发布于 2020-07-12 22:34:40

你必须像那样使用它。

代码语言:javascript
复制
<WebView
    source={{ uri: currentUrl }}
    injectedJavaScript="window.ReactNativeWebView.postMessage(document.title)"
    onMessage={event => setTitle(event.nativeEvent.data)}
 />

如果你想要webview的不同道具,你可以看看https://github.com/react-native-community/react-native-webview/blob/master/docs/Reference.md

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61008925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档