《iOS开发进阶》第15章:基于UIWebView的混合编程

 

基于UIWebView的混合编程是指同时使用原生的控件和UIWebView来展现应用界面。合理的使用该方案可以保证应用既有原生应用的流畅交互效果,又有Web界面良好的动态修改和多平台复用的优势。

 

1、混合编程简介

基于UIWebView实现的页面有几个共同的特点:排版复杂、界面的变化需求频繁、界面对用户的交互需求不复杂。

 

2、使用模板引擎渲染HTML界面

UIWe接受一个HTML内容,可通过-loadingHtmlString:(NSString *)string baseURL:(NSURL *)baseURL;

我们可以通过模板引擎来负责相关渲染工作,常用的模板引擎有:MGTemplateEngine、GRMustache等。

 

3、Objective-C语言和JavaScript语言相互调用

Objective-C调用JavaScript:可通过UIWebView的-(NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script;方法实现。

JavaScript调用Objective-C:可通过在UIWebView的delegate函数中得到通知,通过判断请求加载的网址内容是否为约定好的地址,地址通常类似于:gap://methodname?argument。

JS与OC之间的相互调用可通过开源的WebViewJavaScriptBridge实现。

 

4、如何传递参数

5、同步与异步

UIWebView调用原生界面是异步,原生界面调用UIWebView是同步。

 

6、注意事项

6.1 线程阻塞问题

6.2 主线程的问题

6.3 键盘控制

6.4 CommonJS规范

6.7 使用Safari进行调试

 

本文来自Awnlab.com麦芒实验室,转载请注明出处,谢谢合作。