iOS中web內(nèi)容顯示的解決方案

概述##

在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

Demo演示

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容