WKWebView詳細(xì)介紹

對于之前使用的UIWebView,由于性能方面一直被吐槽,所以蘋果官方現(xiàn)在推出一款性能極佳的WebKit庫來代替UIWebView,WKWebView使用的內(nèi)存是原來的1/3甚至1/4,WKWebView是現(xiàn)代WebKit API 在iOS8和OS X Yosemite應(yīng)用中的核心部分。它代替了UIKit中的UIWebView和AppKit 中的WebView,提供了統(tǒng)一的跨雙平臺 API。
自詡擁有60fps滾動(dòng)刷新率、內(nèi)置手勢、高效的app和web信息交換通道、和 Safari相同的JavaScript引擎,所以必須學(xué)習(xí)一下

初始化

initWithFrame:configuration:

init(frame frame: CGRect,
 configuration configuration: WKWebViewConfiguration)
- (instancetype)initWithFrame:(CGRect)frame
 configuration:(WKWebViewConfiguration *)configuration

** 這個(gè)方法可以自定義WKWebViewConfiguration。并初始化復(fù)制指定的配置。 如果你不想配置相關(guān)參數(shù),可以使用initwithframe:初始默認(rèn)配置實(shí)例方法。 **

屬性介紹

  • configuration:瀏覽器配置(只讀)
@NSCopying var configuration: WKWebViewConfiguration { get }
@property(nonatomic, readonly, copy) WKWebViewConfiguration *configuration
  • scrollview: 滾動(dòng)視圖(只讀)
var scrollView: UIScrollView { get }
@property(nonatomic, readonly, strong) UIScrollView *scrollView
  • title:頁面的標(biāo)題(只讀))
var title: String? { get }
@property(nonatomic, readonly, copy) NSString *title
  • URL:當(dāng)前頁面的URL(只讀)
@NSCopying var URL: NSURL? { get }
@property(nonatomic, readonly, copy) NSURL *URL
  • customUserAgent:用戶設(shè)置的代理信息,沒有為nil(9.0 and later)
var customUserAgent: String?
@property(nonatomic, copy) NSString *customUserAgent
  • ertificateChain:當(dāng)前已提交的導(dǎo)航的證書鏈的對象數(shù)組。(只讀)(9.0 and later)
var certificateChain: [AnyObject] { get }
@property(nonatomic, readonly, copy) NSArray *certificateChain
  • navigationDelegate:瀏覽器導(dǎo)航代理
weak var navigationDelegate: WKNavigationDelegate?
@property(nonatomic, weak) id< WKNavigationDelegate > navigationDelegate
  • UIDelegate:瀏覽器用戶界面代理
weak var UIDelegate: WKUIDelegate?
@property(nonatomic, weak) id< WKUIDelegate > UIDelegate

加載內(nèi)容

  • estimatedProgress:加載的進(jìn)度值,從0到1
var estimatedProgress: Double { get }
@property(nonatomic, readonly) double estimatedProgress
  • hasOnlySecureContent:是否安全加密加載頁面(只讀)
var hasOnlySecureContent: Bool { get }
@property(nonatomic, readonly) BOOL hasOnlySecureContent
  • 加載HTML字符串
func loadHTMLString(_ string: String,
 baseURL baseURL: NSURL?) -> WKNavigation?
- (WKNavigation *)loadHTMLString:(NSString *)string
 baseURL:(NSURL *)baseURL

** Parameters
string HTML內(nèi)容字符串
baseURL:解析HTML內(nèi)容字符串里面的網(wǎng)址 **

  • loading:是否正在加載中(只讀)
var loading: Bool { get }
@property(nonatomic, readonly, getter=isLoading) BOOL loading
  • reload:重新加載頁面方法
func reload() -> WKNavigation?
 - (WKNavigation *)reload
  • reloadFromOrigin重新載入當(dāng)前頁面,進(jìn)行端到端的驗(yàn)證使用緩存驗(yàn)證條件
func reloadFromOrigin() -> WKNavigation?
- (WKNavigation *)reloadFromOrigin
  • stopLoading在當(dāng)前頁面停止所有的加載
func stopLoading()
- (void)stopLoading
  • loadData:MIMEType:characterEncodingName:baseURL:加載數(shù)據(jù)
func loadData(_ data: NSData,
 MIMEType MIMEType: String,
 characterEncodingName characterEncodingName: String,
 baseURL baseURL: NSURL) -> WKNavigation?
- (WKNavigation *)loadData:(NSData *)data
 MIMEType:(NSString *)MIMEType
 characterEncodingName:(NSString *)characterEncodingName
 baseURL:(NSURL *)baseURL

** data: 網(wǎng)頁轉(zhuǎn)換的數(shù)據(jù)
MIMEType
{
application/msexcel
application/mshelp
application/mspowerpoint
application/msword
application/octet-stream
application/pdf
application/post
application/rtf
application/x-httpd-php
}
characterEncodingName :編碼類型
baseURL:用于解析文檔中的相對網(wǎng)址的網(wǎng)址。 **

  • loadFileURL:allowingReadAccessToURL:加載導(dǎo)航到所請求的文件系統(tǒng)上的文件的URL
func loadFileURL(_ URL: NSURL,
 allowingReadAccessToURL readAccessURL: NSURL) -> WKNavigation?
 (WKNavigation *)loadFileURL:(NSURL *)URL
 allowingReadAccessToURL:(NSURL *)readAccessURL

** readAccessURL如果是一個(gè)文件,直接加載,如果是一個(gè)目錄,加載里面的文件 **

Navigating導(dǎo)航

  • allowsBackForwardNavigationGestures是否允許水平滑動(dòng)前進(jìn)后退頁面。默認(rèn)是NO
var allowsBackForwardNavigationGestures: Bool
allowsBackForwardNavigationGestures
  • backForwardList歷史記錄
ar backForwardList: WKBackForwardList { get }
@property(nonatomic, readonly, strong) WKBackForwardList *backForwardList
  • canGoBack:是否后退到歷史記錄的一項(xiàng)(只讀)
var canGoBack: Bool { get }
@property(nonatomic, readonly) BOOL canGoBack
  • canGoForward:是否前進(jìn)到歷史記錄的某一項(xiàng)(只讀)
var canGoForward: Bool { get }
@property(nonatomic, readonly) BOOL canGoForward
  • allowsLinkPreview:是否支持鏈接預(yù)覽,支持3DTouch查看等
var allowsLinkPreview: Bool
@property(nonatomic) BOOL allowsLinkPreview
  • goBack:回到后一頁
func goBack() -> WKNavigation?
- (WKNavigation *)goBack
  • oForward:前進(jìn)一頁
func goForward() -> WKNavigation?
- (WKNavigation *)goForward
  • goToBackForwardListItem:導(dǎo)航到一個(gè)新的項(xiàng)目(從后向前),并設(shè)置為當(dāng)前項(xiàng)目
func goToBackForwardListItem(_ item: WKBackForwardListItem) -> WKNavigation?
- (WKNavigation *)goToBackForwardListItem:(WKBackForwardListItem *)item
  • loadRequest:加載URL的請求
func loadRequest(_ request: NSURLRequest) -> WKNavigation?
- (WKNavigation *)loadRequest:(NSURLRequest *)request
  • 執(zhí)行JavaScript語言
func evaluateJavaScript(_ javaScriptString: String,
      completionHandler completionHandler: ((AnyObject?, NSError?) -> Void)?)
- (void)evaluateJavaScript:(NSString *)javaScriptString
         completionHandler:(void (^)(id, NSError *error))completionHandler

** completionHandler:執(zhí)行后的block回調(diào) **

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • 前言 給大家介紹另外一種基于 iOS 8 新推出的 WKWebView 組件,構(gòu)建出自己的混合開發(fā)框架。 WKWe...
    iwolfox閱讀 1,189評論 1 3
  • IOS之UIWebView的使用 剛接觸IOS開發(fā)1年多,現(xiàn)在對于 混合式 移動(dòng)端開發(fā)越來越流行,因?yàn)殚_發(fā)成本上、...
    學(xué)無止境666閱讀 46,002評論 5 53
  • 本文參加#未完待續(xù),就要表白#活動(dòng),本人承諾,文章內(nèi)容為原創(chuàng),且未在其他平臺發(fā)表過。 不舍,不舍鴻遠(yuǎn)樓前飄揚(yáng)的紅旗...
    CestLaVie_85eb閱讀 294評論 0 0
  • 可能沒那么完美,但也是一種心境。
    六子小七閱讀 173評論 0 0

友情鏈接更多精彩內(nèi)容