引言
很多App因业务需求,采用了混合开发模式(Hybrid),即在App中嵌入H5界面。
为什么要采用Hybrid模式,因为App修改代码后,需要重新发版,市场审核后,才能上架市场。周期长,用户体验很差。比如:需要在App里面搞个产品活动…
采用Hybrid模式便于今后产品业务的扩展与维护。这个时候,就会引出一个重要的问题,App与H5是如何通信的。
1 App如何发消息给H5,H5把处理的结果响应给App?
2 H5又如何发消息给App,App把处理的结果又如何响应给H5?
3 iOS有UIWebView和WKWebView两个容器,WKWebView也有自己的一套与H5的交互方案,如何同时兼容UIWebView和WKWebView?
4 Android系统提供了一套与H5交互的方案,iOS也有一套方案,如何同时兼容Android和iOS?
5 在App与H5交互之前,是否需要确认一下通信安全?
直接上效果图,一目了然
背景
swift项目中快速实现Native和H5的交互,Android也可以实现此方案,H5小伙伴使用起来也方便灵活,简单调用同时兼容iOS和Android。
功能
- App和H5双向通信
- 支持UIWebView和WKWebView
- 支持多个Scheme并存
- 开启和关闭调试日志
使用
导入头文件
import EasyJSBridge
具体用法
iOS端
开启调试日志信息
EasyJSBridge.enableLogging() //默认未启动调试日志
注入EasyJSBridge
self.easyJSBridge = EasyJSBridge.bridgeForWKWebView(webView: self.wkWebView) //WKWebView中注入EasyJSBridge
self.easyJSBridge = EasyJSBridge.bridgeForUIWebView(webView: self