目录
1、Hybrid整体结构
2、桥接层
3、基础通信层
4、打开离线插件的流程
5、离线插件数据预加载优化
1、Hybrid层次结构
Hybrid结构层次
(1)H5页面层。
(2)桥接层:BridgeJs是一个.js文件,是NA和H5通信的桥梁,WebView在加载url之前需要将BridgeJs前置注入。
(3)基础通信层:该层主要由BridgeWebView、BridgeManager、WebPlugin组成,BridgeWebView提供了基本的页面加载,并捕获BridgeJs发送过来的事件交给BridgeManager进行处理;BridgeManager具备BridgeWebView的控制能力,负责处理NA向H5以及H5向NA的消息处理;WebPlugin是离线化插件,为了加速H5页面的展示,可将某个业务的h5、css、js、图片等资源打包,并离线化至本地,在打开相应页面的时候只需获取其对应页面的数据,省去h5、css、js、图片等资源的下载时间。
(4)协议分发层:该层是一个总体的demo协议分发器,将收到的协议分发到各个协议实现层进行处理。
(5)协议实现层:该层针对demo协议不同的scheme,分别对应不同的实现。NativePageCall用于APP内各个页面的跳转;WebSDKCall是用于为H5提供各种NA能力,WebPluginCall用于打开本地离线化插件。
(6)Native层:该层为客户端App层,为上述几种协议提供能力调用和支持。
2、桥接层
2.1、BridgeJs是什么?
BridgeJs是一个.js文件,是NA和H5通信的桥梁,(作用是做隔离)。具体来说就是H5调用NA能力或者打开NA页面必须通过调用BridgeJs中的方法来通知NA,NA也必须调用BridgeJs中的方法来给H5页面发送消息。
2.2、BridgeJs的注入方式
WebView注入BridgeJs文件的方式为,先将该文件读入内存作为BridgeJs,Android4.4以