Android

Android 和 iOS 混合编程

这里的混合编程,不是Android 和 iOS 之间的混合,是Android 和 HTML/JavaScript 之间的混合编程,和 iOS 和 HTML/JavaScript 之间的混合编程。

HTML 开发有诸多的优势,但是纯HTML 开发也有着一些局限,所以使用混合编程,可以相互整合,相互弥补直接的弱点。但是看上去很美的东西,其实还是有很多坑的。

WebView 组建是大部分UI系统都有的一个重要的组建。在Android 就是 WebView ,在 iOS 里是 UIWebView 。基本上都是一个意思,load 一个 HTML 页面,并且可以执行 JavaScript 脚本。这样的混合编程带来了不少的好处,就是减少开发的成本,特别是像 PhoneGap 这样的产品,帮你集成了很多 API , 这样开发者就可以专心做应用了。

之前一直只做 Andriod Hybrid 开发,Android 里对 WebView 的功能还是很全的,而且可以通过 addJavaScriptInterface 来进行扩展,让 JavaScript 代码可以直接调用 Java 代码,并且同步返回值。但是最近在 iOS 上就碰见了问题了。 iOS 是使用另外的一套机制来实现的,必须当页面发起一个请求的时候,OC 层才可以捕获到事件,并且去处理,处理完成后,再调用 JavaScript 来传递值。这是一个异步的方法。同时,需要页面发起请求,这个是怎么做到的呢?参考PhoneGap 的做法,在当前页面里,增加一个 iFrame 对象,这个 iFrame 的宽高都为0,并且不可见,iFrame 的src 的值,就是最终传递到 OC 层的请求,这个可以自定义协议。

EOF

本文作者:Binkery
本文地址:https://binkery.com/archives/383.html
版权声明:欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果