WkWebView 令人崩潰的崩潰

weixin_34208283發表於2017-07-05

最近將UIWebView替換成WKWebView,本來挺歡的,後來做深了之後,各種各樣奇葩的問題接二連三的出現,實在令人崩潰,後來各種谷歌百度找解決方法,下面是自己遇到的坑,記錄下來供有需要的參考。

  1. 問題:[WKCustomProtocolLoader connectionDidFinishLoading:] 報錯
    解決:WKWebViewConfiguration 的 processPool 要設定成單例模式

    import <WebKit/WebKit.h>

    @interface WKProcessPool (SharedProcessPool)

    • (WKProcessPool*)sharedProcessPool;
      @end

    import "WKProcessPool+SharedProcessPool.h"

    @implementation WKProcessPool (SharedProcessPool)

    • (WKProcessPool)sharedProcessPool {
      static WKProcessPool
      SharedProcessPool;
      static dispatch_once_t onceToken;
      dispatch_once(&onceToken, ^{
      SharedProcessPool = [[WKProcessPool alloc] init];
      });
      return SharedProcessPool;
      }
      @end

    webConfig.processPool = [WKProcessPool sharedProcessPool];

  2. scrollView的delegate為強引用,在跳轉到下一個頁面後引發崩潰
    處理:viewWillDisappear、dealloc 設定
    self.webView.scrollView.delegate = nil;
    viewWillAppear 的時候 重新設定 self.webView.scrollView.delegate = self;

  3. ios 10.2 系統下,Safari開啟了JSContexts檢查,報以下錯誤

1177116-354b5e8c27dfb368.png
QQ20170705-211743.png

處理:關閉手機safari的web檢查器

以上3個崩潰的出現,控制檯裡會出現列印空指標資訊 pointer being freed was not allocated *** set a breakpoint in malloc_error_break to debug ,無再多其他有用的資訊,但願你們沒遇到吧,反正我已經被折磨得成仙了>_<

還有遇到其他更奇葩的崩潰,歡迎反饋上來。

相關文章