欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

iOS中WKWebView白屏問題的分析與解決

 更新時(shí)間:2017年10月26日 09:29:27   作者:dimsky  
最近在工作中遇到了WKWebView白屏的問題,所以這篇文章主要給大家介紹了關(guān)于iOS中WKWebView白屏問題的分析與解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)同樣遇到這個(gè)問題的朋友具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。

前言

隨著WKWebView的推出, 解決了很多UIWebView 的問題。比如加載速度慢,內(nèi)存泄露等問題。WKWebView是在iOS 8 推出,前段時(shí)間正好把項(xiàng)目也適配到iOS 8 以上了,終于可以把項(xiàng)目中的UIWebView 替換成WKWebView。

WKWebView的特點(diǎn):

  • 性能高,穩(wěn)定性好,占用的內(nèi)存比較小,
  • 支持JS交互
  • 支持HTML5 新特性
  • 可以添加進(jìn)度條(然并卵,不好用,還是習(xí)慣第三方的)。
  • 支持內(nèi)建手勢(shì),
  • 據(jù)說高達(dá)60fps的刷新頻率(不卡)

但是發(fā)現(xiàn)在使用的時(shí)候還是有很多坑,這其中就有屢見不鮮的白屏問題。經(jīng)過一些調(diào)試、google 發(fā)現(xiàn)不外乎這3個(gè)原因。下面話不多說了,來(lái)一起看看詳細(xì)的介紹吧。

1. iOS 8.0 - iOS 8.2 偶爾白屏問題

這個(gè)是WKWebView 剛推出時(shí)的Bug,偶爾會(huì)出現(xiàn)白屏,如果想避免這種問題,只能通過版本號(hào)判斷,小于8.2的系統(tǒng)使用UIWebView。

2. HTTPS 請(qǐng)求,未實(shí)現(xiàn)證書認(rèn)證代理導(dǎo)致頁(yè)面不加載的問題

如果是HTTPS 請(qǐng)求,需要在WKWebView 的 WKNavigationDelegate 中的一個(gè)代理方法 中實(shí)現(xiàn)獲取服務(wù)器認(rèn)證的邏輯,最后返回給服務(wù)端。 這個(gè)問題常常出現(xiàn)在客戶端無(wú)法獲得安全認(rèn)證的時(shí)候(沒有證書,或者是自建證書),比如說https://www.apple.com/cn 是默認(rèn)的蘋果中國(guó)的地址,但是 https://www.apple.com.cn 也是可以訪問的(會(huì)自動(dòng)跳轉(zhuǎn)到 https://www.apple.com/cn ) ,只是在Safari 的安全認(rèn)證中通不過,我們需要在代理方法中通過服務(wù)端給的驗(yàn)證方式創(chuàng)建一個(gè)憑證,然后繼續(xù)申請(qǐng)?jiān)L問。比如在Safari 瀏覽器中第一次訪問時(shí)就會(huì)彈出對(duì)話框,點(diǎn)擊繼續(xù)后就可以繼續(xù)訪問。


通過實(shí)現(xiàn)以下代理即可解決

func webView(webView: WKWebView, didReceiveAuthenticationChallenge challenge: NSURLAuthenticationChallenge, completionHandler: (NSURLSessionAuthChallengeDisposition, NSURLCredential?) -> Void) {
  // 判斷服務(wù)器采用的驗(yàn)證方法
 if challenge.protectionSpace.authenticationMethod == NSURLAuthenticationMethodServerTrust {
  if challenge.previousFailureCount == 0 {
   // 如果沒有錯(cuò)誤的情況下 創(chuàng)建一個(gè)憑證,并使用證書
   let credential = NSURLCredential(forTrust: challenge.protectionSpace.serverTrust!)
   completionHandler(.UseCredential, credential)
  } else {
   // 驗(yàn)證失敗,取消本次驗(yàn)證
   completionHandler(.CancelAuthenticationChallenge, nil)
  }
 } else {
  completionHandler(.CancelAuthenticationChallenge, nil)
 }
}

3. 由于滾動(dòng)組件嵌套的結(jié)構(gòu),不刷新的問題

這是有個(gè)哥們遇到的問題,分析的很仔細(xì),從發(fā)現(xiàn)問題,到分析WebKit 源碼,最后得知是在頁(yè)面滾動(dòng)后沒有正常的調(diào)用 WKWebView 的 _updateVisibleContentRects 方法刷新需要渲染的內(nèi)容導(dǎo)致。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • iOS Runntime 動(dòng)態(tài)添加類方法并調(diào)用-class_addMethod

    iOS Runntime 動(dòng)態(tài)添加類方法并調(diào)用-class_addMethod

    這篇文章主要介紹了iOS Runntime 動(dòng)態(tài)添加類方法并調(diào)用-class_addMethod的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-08-08
  • iOS開發(fā)實(shí)現(xiàn)隨機(jī)圖片驗(yàn)證碼封裝

    iOS開發(fā)實(shí)現(xiàn)隨機(jī)圖片驗(yàn)證碼封裝

    這篇文章主要介紹了iOS開發(fā)實(shí)現(xiàn)隨機(jī)圖片驗(yàn)證碼封裝,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2017-08-08
  • iOS UITableView 與 UITableViewController實(shí)例詳解

    iOS UITableView 與 UITableViewController實(shí)例詳解

    這篇文章主要介紹了iOS UITableView 與 UITableViewController實(shí)例詳解的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-09-09
  • iOS開發(fā)之手勢(shì)gesture詳解

    iOS開發(fā)之手勢(shì)gesture詳解

    本篇文章介紹了iOS開發(fā)之手勢(shì)gesture,現(xiàn)在分享給大家,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2016-11-11
  • 關(guān)于iOS導(dǎo)航欄返回按鈕問題的解決方法

    關(guān)于iOS導(dǎo)航欄返回按鈕問題的解決方法

    這篇文章主要為大家詳細(xì)介紹了關(guān)于iOS導(dǎo)航欄返回按鈕問題的解決方法,對(duì)iOS自定義backBarButtonItem的點(diǎn)擊事件進(jìn)行介紹,感興趣的小伙伴們可以參考一下
    2016-05-05
  • iOS實(shí)現(xiàn)多個(gè)垂直滑動(dòng)條并列視圖

    iOS實(shí)現(xiàn)多個(gè)垂直滑動(dòng)條并列視圖

    這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)多個(gè)垂直滑動(dòng)條并列視圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • ios實(shí)現(xiàn)自動(dòng)獲取label高度、寬度及最后一個(gè)位置詳解

    ios實(shí)現(xiàn)自動(dòng)獲取label高度、寬度及最后一個(gè)位置詳解

    這篇文章主要給大家介紹了關(guān)于ios如何實(shí)現(xiàn)自動(dòng)獲取label高度、寬度及最后一個(gè)位置的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-10-10
  • h5 ios輸入框和鍵盤的兼容性優(yōu)化指南

    h5 ios輸入框和鍵盤的兼容性優(yōu)化指南

    這篇文章主要給大家介紹了關(guān)于h5 ios輸入框和鍵盤的兼容性優(yōu)化的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • iOS WKWebView中MessageHandler內(nèi)存泄漏問題的完美解決過程

    iOS WKWebView中MessageHandler內(nèi)存泄漏問題的完美解決過程

    這篇文章主要給大家介紹了關(guān)于iOS WKWebView中MessageHandler內(nèi)存泄漏問題的完美解決過程,文中通過示例代碼介紹的非常詳細(xì),對(duì)各位iOS開發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • iOS 10新的通知機(jī)制中添加圖片的方法詳解

    iOS 10新的通知機(jī)制中添加圖片的方法詳解

    這篇文章主要介紹了iOS 10新的通知機(jī)制中添加圖片的方法,文中介紹的非常詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-03-03

最新評(píng)論