React-native使用Webview内嵌H5页面混合开发

本文介绍了在移动端开发中使用React-native的Webview组件内嵌H5页面,实现APP+H5混合开发的需求。详细讲解了交互机制,包括APP端注入JS脚本、H5调用APP方法以及数据传递。并通过Demo截图展示了交互过程和关键代码。
摘要由CSDN通过智能技术生成

需求背景

在移动端开发中,有的业务页面使用原生平台开发十分繁琐,而使用H5页面来实现则十分便捷和高效,这就是APP+H5混合开发。

在众多APP当中也能看到H5混合开发的页面。这个需求是十分常见的。

 

交互机制

react-native可以使用Webview组件来内嵌H5页面,在开发过程中,H5页面常常要和APP端进行数据交互。

那么这个交互机制是怎么样的呢?原理如下:

 

- APP端注入JS脚本到H5端,供H5页面调用。

- H5页面调用APP注入的JS脚本的方法,传递事件和数据到APP端。

- APP端在Webview组件注册onMessage回调事件,处理H5传递的事件和数据。

 

这个过程主要通过Webview组件的onMessage()方法和window.ReactNativeWebView.postMessage()方法来实现的。

 

- onMessage()方法详解:https://reactnative.cn/docs/webview#onmessage

 

Demo截图

- 蓝色按钮,是APP端的按钮,点击就可以传递事件和数据到H5页面。

- 蓝色按钮下方则是H5页面,里边有个按钮,点击该按钮,则可以传递事件和数据到APP端。

- 这个就是React-native使用Webview内嵌H5页面交互过程。

 

 

关键代码

1. APP端注入JS脚本到H5端,供H5页面调用。注意postMessage()方法的参数要转为JSON字符串。

 

const H5AppBridge = `
    window.H5AppBridge={
        sayHello:function(data){
            let objData = {};
            // 声明事件类型。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值