WebKit(WKScriptMessageHandler)
使用過(guò)UIWebView的朋友都知道UIWebViewDelegate這個(gè)協(xié)議,它能幫助我們監(jiān)聽(tīng)網(wǎng)頁(yè)加載的進(jìn)度舞骆,以及錯(cuò)誤祥国。
WebKit框架也有這樣的協(xié)議WKNavigationDelegate,它的功能比UIWebViewDelegate更強(qiáng)缤骨,還能監(jiān)聽(tīng)服務(wù)器跳轉(zhuǎn)、身份認(rèn)證等。
這篇博文為大家?guī)?lái)關(guān)于WKNavigationDelegate的介紹澈歉。
1 搭建項(xiàng)目
在這里我們不在使用前面的YJBaseVC工腋,而是使用YJSeniorVC類姨丈。因?yàn)檫@里開(kāi)始使用高級(jí)模塊了。
下面就是YJSeniorVC.m的源代碼擅腰。
這里已經(jīng)使用懶加載的方式為大家創(chuàng)建WKWebView蟋恬,并加載百度首頁(yè)。大家運(yùn)行項(xiàng)目即可看見(jiàn)百度首頁(yè)趁冈,如果看不見(jiàn)請(qǐng)檢查自己的相關(guān)代碼和查閱前面的博文歼争。
這里還指向了WKNavigationDelegate,詳見(jiàn)
@interfaceYJSeniorVC()
并使用
_webView.navigationDelegate =self;//代理設(shè)置
讓_webView的navigationDelegate指向當(dāng)前類渗勘。只是當(dāng)前類還沒(méi)有實(shí)現(xiàn)WKNavigationDelegate而已沐绒。
2 WKNavigationDelegate協(xié)議
WKNavigationDelegate協(xié)議有兩大核心部分,第一部分是導(dǎo)航部分旺坠,第二部分是頁(yè)面內(nèi)監(jiān)聽(tīng)乔遮。
2.1 導(dǎo)航監(jiān)聽(tīng)
2.2 網(wǎng)頁(yè)監(jiān)聽(tīng)
3 實(shí)現(xiàn)WKNavigationDelegate
在YJSeniorVC.m中導(dǎo)入如下方法。
再次運(yùn)行項(xiàng)目取刃,可在控制臺(tái)看見(jiàn)相應(yīng)輸出蹋肮。這樣我們能更細(xì)膩化的把控WKWebView。