WKWebView

WKWebView屬性

WKBackForwardList:之前訪問過的 web頁面的列表,可以通過后退和前進動作來訪問到论悴。
WKBackForwardListItem: webview中后退列表里的某一個網頁搂蜓。
WKFrameInfo: 包含一個網頁的布局信息板熊。
WKNavigation: 包含一個網頁的加載進度信息。
WKNavigationAction:包含可能讓網頁導航變化的信息,用于判斷是否做出導航變化柳譬。
WKNavigationResponse:包含可能讓網頁導航變化的返回內容信息,用于判斷是否做出導航變化续镇。
WKPreferences: 概括一個 webview 的偏好設置美澳。
WKProcessPool: 表示一個 web 內容加載池。
WKUserContentController: 提供使用 JavaScript post 信息和注射 script 的方法摸航。
WKScriptMessage: 包含網頁發(fā)出的信息制跟。
WKUserScript:表示可以被網頁接受的用戶腳本。
WKWebViewConfiguration: 初始化 webview 的設置酱虎。
WKWindowFeatures: 指定加載新網頁時的窗口屬性雨膨。
WKNavigationDelegate: 提供了追蹤主窗口網頁加載過程和判斷主窗口和子窗口是否進行頁面加載新頁面的相關方法。
WKScriptMessageHandler: 提供從網頁中收消息的回調方法读串。
WKUIDelegate: 提供用原生控件顯示網頁的方法回調聊记。
  1. WKNavigationDelegate
該代理提供的方法,可以用來追蹤加載過程(頁面開始加載恢暖、加載完成排监、加載失敗)杰捂、決定是否執(zhí)行跳轉舆床。

#pragma mark - WKNavigationDelegate
// 頁面開始加載時調用
- (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *)navigation{
     
}
// 當內容開始返回時調用
- (void)webView:(WKWebView *)webView didCommitNavigation:(WKNavigation *)navigation{
     
}
// 頁面加載完成之后調用
- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation{
     
}
// 頁面加載失敗時調用
- (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(WKNavigation *)navigation{
     
}

頁面跳轉的代理方法有三種,分為(收到跳轉與決定是否跳轉兩種)

// 接收到服務器跳轉請求之后調用
- (void)webView:(WKWebView *)webView didReceiveServerRedirectForProvisionalNavigation:(WKNavigation *)navigation{
     
}
// 在收到響應后嫁佳,決定是否跳轉
- (void)webView:(WKWebView *)webView decidePolicyForNavigationResponse:(WKNavigationResponse *)navigationResponse decisionHandler:(void (^)(WKNavigationResponsePolicy))decisionHandler{
     
    NSLog(@"%@",navigationResponse.response.URL.absoluteString);
    //允許跳轉
    decisionHandler(WKNavigationResponsePolicyAllow);
    //不允許跳轉
    //decisionHandler(WKNavigationResponsePolicyCancel);
}
// 在發(fā)送請求之前挨队,決定是否跳轉
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler{
     
    NSLog(@"%@",navigationAction.request.URL.absoluteString);
    //允許跳轉
    decisionHandler(WKNavigationActionPolicyAllow);
    //不允許跳轉
    //decisionHandler(WKNavigationActionPolicyCancel);
}

WKUIDelegate

#pragma mark - WKUIDelegate
// 創(chuàng)建一個新的WebView
- (WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures{
    return [[WKWebView alloc]init];
}
// 輸入框
- (void)webView:(WKWebView *)webView runJavaScriptTextInputPanelWithPrompt:(NSString *)prompt defaultText:(nullable NSString *)defaultText initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(NSString * __nullable result))completionHandler{
    completionHandler(@"http");
}
// 確認框
- (void)webView:(WKWebView *)webView runJavaScriptConfirmPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(BOOL result))completionHandler{
    completionHandler(YES);
}
// 警告框
- (void)webView:(WKWebView *)webView runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(void))completionHandler{
    NSLog(@"%@",message);
    completionHandler();
}

WKWebView加載HTTPS的鏈接

- (void)webView:(WKWebView *)webView didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential *credential))completionHandler {
    if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) {
         
        if ([challenge previousFailureCount] == 0) {
             
            NSURLCredential *credential = [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust];
             
            completionHandler(NSURLSessionAuthChallengeUseCredential, credential);
             
        } else {
             
            completionHandler(NSURLSessionAuthChallengeCancelAuthenticationChallenge, nil);
             
        }
         
    } else {
         
        completionHandler(NSURLSessionAuthChallengeCancelAuthenticationChallenge, nil);   
         
    }
}
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市脱拼,隨后出現的幾起案子瞒瘸,更是在濱河造成了極大的恐慌,老刑警劉巖熄浓,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件情臭,死亡現場離奇詭異省撑,居然都是意外死亡,警方通過查閱死者的電腦和手機俯在,發(fā)現死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門竟秫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人跷乐,你說我怎么就攤上這事肥败。” “怎么了愕提?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵馒稍,是天一觀的道長。 經常有香客問我浅侨,道長纽谒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任如输,我火速辦了婚禮鼓黔,結果婚禮上,老公的妹妹穿的比我還像新娘不见。我一直安慰自己澳化,他們只是感情好,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布稳吮。 她就那樣靜靜地躺著缎谷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪盖高。 梳的紋絲不亂的頭發(fā)上慎陵,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天眼虱,我揣著相機與錄音喻奥,去河邊找鬼。 笑死捏悬,一個胖子當著我的面吹牛撞蚕,可吹牛的內容都是我干的。 我是一名探鬼主播过牙,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼甥厦,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了寇钉?” 一聲冷哼從身側響起刀疙,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎扫倡,沒想到半個月后谦秧,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年疚鲤,在試婚紗的時候發(fā)現自己被綠了锥累。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡集歇,死狀恐怖桶略,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情诲宇,我是刑警寧澤际歼,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站姑蓝,受9級特大地震影響蹬挺,放射性物質發(fā)生泄漏。R本人自食惡果不足惜它掂,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一巴帮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧虐秋,春花似錦榕茧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至靶剑,卻和暖如春蜻拨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背桩引。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工缎讼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人坑匠。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓血崭,卻偏偏與公主長得像,于是被迫代替她去往敵國和親厘灼。 傳聞我的和親對象是個殘疾皇子夹纫,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內容

  • 一、WKWebView簡介 UIWebView自iOS2就有设凹,WKWebView從iOS8才有舰讹,毫無疑問WKWeb...
    慌莫染閱讀 4,096評論 0 4
  • 一、WKWebView簡介 UIWebView自iOS2就有闪朱,WKWebView從iOS8才有月匣,毫無疑問WKWeb...
    逍遙晨旭閱讀 8,490評論 2 16
  • 前言 關于UIWebView的介紹匈睁,相信看過上文的小伙伴們,已經大概清楚了吧桶错,如果有問題航唆,歡迎提問。 本文是本系列...
    CoderLF閱讀 8,963評論 2 12
  • WKWebView是在Apple的WWDC 2014隨iOS 8和OS X 10.10出來的院刁,是為了解決UIWeb...
    zhYx_閱讀 22,666評論 4 19
  • 作為職業(yè)表親退腥,我們常常需要匯總各個部門或者不同人員提交的Excel表格任岸。這些收上來的表格往往存在一個大問題,日期格...
    傲看今朝閱讀 2,510評論 2 58