react-native中RN和webview双向通信

本文介绍在React Native项目中实现WebView与原生应用之间的数据传递方法,包括从App向WebView传值及从WebView向App传值的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目前的RN项目需用到分享功能,于是在app中需要分享的页面写了webview,写是写完了,但是要如何传值呢?

目前遇到的需求是,在Webview中点击某个人的简介要调到对应的RN中的这个人的主页,相当于要传这个人的id到RN中。

在RN中某个需要用到Webview的页面,webview是相当于这个页面的一个组件:

app向webview中的网页传值:

1、在Webview组件里用到ref这个属性,取个名字:ref="webview"在该app页面使用this.refs.webView.postMessage(JSON.stringify("你要传的值"))发送信息到网页中,网页使用document.addEventListener('message', function(msg) {})来接收来自app的信息(信息都是字符串)

2、网页收到信息如下:

webview中的网页向app传值:

3、在app中的Webview组件中onMessage属性可以接受从网页端传来的参数,evente.nativeEvent.data就是传过来的参数。

网页中的代码(发送数据到app):

window.postMessage(JSON.stringify(obj));

app中代码(app中接收数据): 

onMessage={(e) => { this._onMessage(e) }}
_onMessage = (e) => {
    var res = JSON.parse(e.nativeEvent.data)
}

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值