Hybrid框架之交互通信篇

本文主要探讨了Hybrid框架中H5与Native的交互通信设计与实现,包括H5向Native通信(如打开原生界面、执行逻辑后返回结果)、Native向H5通信以及H5页面间的通信。文章提到了通过自定义协议、消息分发机制以及注册事件来实现通信,并强调了设计原则,如避免JavaScript注入,确保安全性。

前言

虽然有些应用在使用React Native或Weex开发,但综合来看,业内还是以混合开发模式为主,从我们自家的App来看,H5业务所占比重越来越高,目前大概占到35%左右,因此一套好的Hybrid开发框架必不可少。

混合开发的一般原则为交互较少、上线周期短、展示性质的页面使用H5开发,如节日活动页、商品秒杀页面等。Hybrid框架要考虑的事情非常多,如页面加载速度、预加载及缓存机制、与原生交互通信、不同机型兼容等问题。

本文的关注点仅在于Hybrid框架交互通信的设计与实现,框架的其他方面日后分享,感兴趣的也可以留言探讨。

交互通信类型

从大的范围来看,可以分为三类:

  • H5向Native通信,以下为常见场景:
    1. H5打开一个原生界面,H5只作为一个入口,后续逻辑均在原生界面处理
    2. H5唤起一个原生界面执行一些逻辑,需要将结果返回给H5
  • Native向H5通信
    1. 通常表现原生界面将某些结果传给H5页面或触发某些H5的行为
  • H5页面之间通信
    1. 如果H5项目有多个独立页面,页面之间可能需要通信

设计与实现

设计原则
  1. 为了安全,尽量避免JavaScript注入
  2. 原生埋点,H5开发不依赖于原生版本
交互通信实现
H5向Native通信

如果不用JavaScript注入的方式,最常见的做法是利用自定义的交互协议,通过public boolean shouldOverrideUrlLoading(WebView view, String url)拦截并进行原生处理。因此

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值