概述##
在iOS中,開發(fā)者有三種方式來顯示W(wǎng)eb內(nèi)容,Safari、自定義瀏覽器、SFSafariViewController
- 各個方法簡介
- Safari:離開當(dāng)前應(yīng)用,跳轉(zhuǎn)到Safari瀏覽器中加載頁面。
- 自定義瀏覽器:利用WKWebView或UIWebView從頭開始創(chuàng)建瀏覽器。
- SFSafariViewController:無需離開當(dāng)前應(yīng)用,即可使用Safari中的一些便利特性。
- 支持版本
- iOS 7 支持 UIWebView
- iOS 8 支持 UIWebView、WKWebView
- iOS 9/iOS 10 支持 UIWebView、WKWebView、SFSafariViewController
SFSafariViewController簡介
SFSafariViewController是一個特殊的UIViewController,可在當(dāng)前App使用Safari的UI框架展現(xiàn)Web內(nèi)容,同時還能享受到Safari的一些便利特性,包括但不限于:
- 與Safari相似的用戶體驗
- 和Safari共享Cookie
- 密碼、證書自動填充
- Safari閱讀器
SFSafariViewController的缺點: - 他的可定制性很差,包括地址欄都是不可編輯的,只能在init的時候傳入一個URL來指定網(wǎng)頁的地址。
-
SFSafariViewController 現(xiàn)在只支持 present 出來,而不能在 NavigationController 中 Push 出來(橫向推出來)。
SFSafariViewController.png
WKWebView與UIWebView的優(yōu)劣對比
WKWebView屬于WebKit框架,WebKit推出于iOS 8.0和OS X 10.10,
與UIWebView相比,WKWebView擁有更快的加載速度和性能,更低的內(nèi)存占用,除此之外,還有以下優(yōu)勢:
- 更多的支持HTML5的特性
- 高達60fps的滾動刷新率以及內(nèi)置手勢
- 與Safari相同的JavaScript引擎
- 將UIWebViewDelegate與UIWebView拆分成了14類與3個協(xié)議
- 另外用的比較多的,增加加載進度屬性:estimatedProgress