(摘抄整理)UIWebView与JS的深度交互

摘自原文

原文是一个不错idea,未来可能大放异彩。

优点:h5开发人员多,跨平台性能好,UI可以随时更替,快速调整入口方案,不用提交新包审核。

缺点:用户行为统计等受限于webview的性能,目前UIwebview, UKwebview还存在很多问题,可能出现加载数据缓慢等体验问题。目前还不能完全推行开来,大公司技术更新成本决定不可能接受。

目前只适用于社交大平台,比如微信,facebook,大量用户分享h5页面到其平台,其他公司的h5通过这种交互能直接支付,扫码,分享,录音等等,不用出微信就可以完成N多业务,转化率也相对高很多。微信如果对这种商用接口收费尼,或者打击竞争对手?呵呵,躺着就能赚钱吧。

闲话到此,我们来分析下这个深度交互到底是什么东东?

下载源码:github源码  

借用原文的图来说明下运行过程,然后分析源代码的机制

(摘抄整理)UIWebView与JS的深度交互_第1张图片

这个是封装好的接口,通过这四个方法来进行交互。机制大致是通过js来进行的如下

H5->OC

1.H5 将method,参数data保存在一个地方,然后做跳转(如源代码种的:@"wvjbscheme://__WVJB_QUEUE_MESSAGE__")

2.OC拦截到wvjbscheme://__WVJB_QUEUE_MESSAGE__ 之后通过固定的接口去获取method和data

3.OC 执行method,通过js返回给h5结果!

反之OC->H5过程一样。

WebViewJavascriptBridge把这个过程封装了起来,设计了方便的接口,真心赞!

你可能感兴趣的:((摘抄整理)UIWebView与JS的深度交互)