新闻详情页面,算是UI中较为复杂一种,因为其中不乏会包括以下的功能:
1、HTML的内容展示
2、夜间模式切换
3、字体大小变更
4、评论回复功能
5、评论列表的更新
image
在iOS中关于新闻详情这类需求的解决方案有很多:
1、native
开发上难度比较大,而且也需要后台来配合样式协议的制定,优点是原生的东西,在体验以及各个方面都会很好,缺点也同样的,原生的这种做法开发成本很大。
2、Hybrid
使用webView先显示HTML页面内容,通过与JS的通信来控制HTML页面中的DOM,优点:几乎不用太多去考虑布局的问题,使用模板的形式将要显示的数据塞进HTML模板中即可,通过OC和JS中通信来达到JS调用OC,或者OC调用JS;缺点:在H5出来这么久的今天,用户体验上依然不及原生,并且一些系统级的功能组件调用比较麻烦。
今天主要说的是Hybrid
这种解决方案,在iOS8以前,iOSApp中使用的是UIWebView来加载web页面,iOS8以后,Apple推出了新的框架WebKit
,其中将 UIWebViewDelegate 与 UIWebView 重构成了 14 个类和 3 个协议,引入了不少新的功能和接口。
WKWebView 有以下几大主要进步:
1、将浏览器内核渲染进程提取出 App,由系统进行统一管理,这减少了相当一部分的性能损失。
2、js 可以直接使用已经事先注入 js runtime 的 js 接口给 Native 层传值,不必再通过苦逼的 iframe 制造页面刷新再解析自定义协议的奇怪方式。
3、支持高达 60 fps 的滚动刷新率,内置了手势探测。
以上特性摘自别人的话,说白了就是使用WKWebView比UIWebView性能和内存占用上都会好很多,如果要进行Hybrid开发,在iOS8之后,强烈推荐使用
WKWebView,因为同样的内容,在使用UIWebView时比WKWebView要慢很多,这在体验上是很致命的。
使用
Objective-C
引用库
#import
#import "WKWebViewJavascriptBridge.h"
```
<