混合编程简介

基于UIWebView  的混合编程本来是一个挺普通和常见的技术框架。国内外很多应用都是采用基于UIWebView的混合编程技术 ,例如微信公众号的内容页面,微博的详情页面,网页新闻客户端的内容页面,

一般的页面都具有以下共同的特点

1.排版复杂,通常包括图片和文字的混排,还有可能有连接需要支持点击,如果不用UIWebView,自己用原生控件通过拼装来实现,由于界面元素太多,做起来会很困难,二如果是用CoreText来实现,就需要自己实现相当多的复杂排版逻辑

2.界面的变化需要频繁,例如淘宝的彩票页面,可能常常需要更新页面以退出不同的活动,采用UIWebView实现后,这类页面就可以动态的更新而不用向APP Store提交新的版本,二原生实现的界面很难达到如此的灵活性。

3.界面对用户的交互需求复杂,因为UIWebView实现交互的效果与原生的效果相比还是会大打折扣,所以这类界面都没有复杂的交互效果,这也是主流应用多采用混合UIWebView

来实现应用界面而不是纯UIWebView来实现应用界面而不是纯UIWebView来实现界面的原因。

如果你的应用也具有以上属性,那么你也可以考虑使用UIWebView来实现该界面


-(void)loadHTMLString:(NSString *)string  baseURL:(NSURL *)baseURL;


这样,我们通过代码来让UIWebView加载HTML 的内容


在UIWebView 通过一次性加载HTML 内容获得初始化界面后,对于复杂的应用,我们还需要在原生界面和UIWebView 界面相互调用传递数据,但是 ,iOS 的UIWebView控件在与原生界面交互数据方面功能比较弱,所以我们需要详细看下原生界面和UIWebView界面是如何做到相互调用的,因为原生界面是用OC语言写的,而UIWebView界面是用JavaScript写的,所以我们讨论的主要是如何做OC语言和JavaScript 语言之间的跨语言相互调用。

OC语言调用JavaScript 语言, 是通过UIWebViewD  -(NSString *)stringByEval-uatingJavaScriptFromString:(NSString*)script; 方法实现 的,该方法向UIWebView传递一个需要执行的JavaScript 文件,最后获得执行结果

JavaScript调用OC语言,并没有现成的API,但是业界有种方法,就是利用UIWebView的特性。在UIWebView内发起所有网络请求,都可以通过delegate 函数在原生界面得到通知。这样我们在UIWebView内发起一个特殊的网络请求





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值