概述##
在iOS中,开发者有三种方式来显示Web内容,Safari、自定义浏览器、SFSafariViewController
- 各个方法简介
- Safari:离开当前应用,跳转到Safari浏览器中加载页面。
- 自定义浏览器:利用WKWebView或UIWebView从头开始创建浏览器。
- SFSafariViewController:无需离开当前应用,即可使用Safari中的一些便利特性。
- 支持版本
- iOS 7 支持 UIWebView
- iOS 8 支持 UIWebView、WKWebView
- iOS 9/iOS 10 支持 UIWebView、WKWebView、SFSafariViewController
SFSafariViewController简介
SFSafariViewController是一个特殊的UIViewController,可在当前App使用Safari的UI框架展现Web内容,同时还能享受到Safari的一些便利特性,包括但不限于:
- 与Safari相似的用户体验
- 和Safari共享Cookie
- 密码、证书自动填充
- Safari阅读器
SFSafariViewController的缺点: - 他的可定制性很差,包括地址栏都是不可编辑的,只能在init的时候传入一个URL来指定网页的地址。
-
SFSafariViewController 现在只支持 present 出来,而不能在 NavigationController 中 Push 出来(横向推出来)。
WKWebView与UIWebView的优劣对比
WKWebView属于WebKit框架,WebKit推出于iOS 8.0和OS X 10.10,
与UIWebView相比,WKWebView拥有更快的加载速度和性能,更低的内存占用,除此之外,还有以下优势:
- 更多的支持HTML5的特性
- 高达60fps的滚动刷新率以及内置手势
- 与Safari相同的JavaScript引擎
- 将UIWebViewDelegate与UIWebView拆分成了14类与3个协议
- 另外用的比较多的,增加加载进度属性:estimatedProgress