码迷,mamicode.com
首页 > Web开发 > 详细

UIWebView v.s. WKWebView

时间:2015-09-02 23:12:40      阅读:418      评论:0      收藏:0      [点我收藏+]

标签:

从初学Objective-C到现在学习iOS开发已经快要一个半月了。最近刚刚学完基本的UIView控件部分,想着先做一个简单的浏览器app练练手。

为什么我要做一款浏览器app呢?我平时特喜欢用手机浏览器app上网,但使用主流浏览器发现有两个缺点:

  1. 现在的浏览器可视面积不够大。平时用手机app浏览网页时总觉得上边的状态栏和下边的工具栏太碍眼。尤其是横屏浏览时,本来就高度有限,这俩霸王又占去一大块地儿,最后就只留下中间窄窄的一个横条区域,更加不够用。技术分享
  2. 现在的浏览器没有针对大屏幕手机的操控进行优化。现在5“屏手机款式泛滥,5.5”屏就要成为主流了。苹果也推出4.7“的iPhone6和5.5”的iPhone6 Plus,4“屏幕就要成为历史了。不管是安卓的”“三大金刚”还是苹果的祖传home键,几乎所有智能机的功能键都在屏幕下方。因此,人们拿着手机为了方便操控,主流操作区域是屏幕的中下部分。现在的主流浏览器依然把地址栏设在屏幕上方,用户如果要更改地址,要么得大幅度改变手的握姿,要么得干脆调整手的位置,很麻烦!(5.5“屏以上的手机应该更明显)。可以说,主流浏览器遵循着桌面浏览器的设计规范,同时虐待着手机用户的手。

    微软倒是在这方面动了脑筋。WP虽然表现很渣(1%真不是吹的),但是微软很贴心地在内置的IE或是后来的Edge里都把按键集中在了屏幕下方。(Lumia638用户表示确实很舒服)技术分享

 

==================我===是===分===割===线==================

 

切入正题。

做浏览器首先要选个好的基础。在Dash输入WebView,会返回两类结果:UIWebView和WKWebView。这俩有啥不一样呢?网上大概搜索了一下就明白了。

  1. UIWebView是iOS传统的浏览控件,绝大多数浏览器都采用这个控件作为基础。Chrome,Firefox,Safari都不例外。根据网上说法,UIWebView比较封闭,很多API都不开放,但却一度是唯一的选择。好处是,这个控件使用时间比较长了,有很多方案可以参考。
  2. 而WKWebView是苹果在iOS8和 OS X Yosemite 应用中中新推出的WebKit中的一个组件。它代替了 UIKit 中的UIWebView和AppKit中的WebView,提供了统一的跨双平台 API。拥有 60fps 滚动刷新率、内置手势、高效的app和web信息交换通道、和Safari相同的JavaScript引擎。

根据测试,WKWebView拥有比UIWebView更为强大的性能。(具体请见https://www.sencha.com/blog/apple-shows-love-for-html5-with-ios-8/

 

那WKWebview完美么?不见得,毕竟苹果还没将UIWebView放进Depreciate列表里。

网上也可以简单的找到几条缺点:

为什么Chrome不用WKWebView?(具体请见https://code.google.com/p/chromium/issues/detail?id=423444

——There is no cookie management API, which means there is no obvious way to clear/manage cookies(没有控制Cookie的API)

——Protocol handlers no longer work, which breaks several very important features(指针句柄不能用 ?渣翻译

——POST bodies are missing from delegate callbacks, which breaks certain aspects of form handling(真的是翻不出来

 此外,WKWebView对读取本地html文件的支持也不好。(具体请见http://blogging.alastair.is/the-disappointing-reality-of-wkwebview/

 

那么,问题来了,这两个该选哪一个?

说到底,这个问题应该是这样的:同一类方案,A方案足以满足现有需求,虽有不少缺点但有大量的解决方案,B方案有不少闪光点,但是缺点也不小,该选哪个?

这个问题到让我想起了2008年。那年,诺基亚如日中天,iPhone不过还是个襁褓中的婴儿。后面的故事大家也都知道了。那么给我们的思考是什么?

至少在我看来,如果A拿不出B那样的亮点,那么当B集中力量解决自己的缺点之后,这个世界就没A什么事儿了。

 

所以我的结论是,选WKWebView,有闪光点的方案总是值得关注的,尤其是那些缺点很容易改正的

 

 

 

 

 

 

UIWebView v.s. WKWebView

标签:

原文地址:http://www.cnblogs.com/rim99/p/4779424.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!