截圖代碼如下:
小Tips:
為了獲取一些堆棧信息以便于快準(zhǔn)狠的定位問題,可以在main函數(shù)里:
最終得到一條關(guān)鍵報(bào)錯(cuò):
簡(jiǎn)單分析一下被多次調(diào)用的原因:
1挽懦、系統(tǒng)判斷這個(gè)方法被多次執(zhí)行,主要是看decisionHandler()是否被多次執(zhí)行;
2裆站、由于if判斷里會(huì)執(zhí)行decisionHandler(),最后一行代碼也會(huì)執(zhí)行decisionHandler()黔夭,并且self.realDelegate中也會(huì)執(zhí)行decisionHandler()宏胯,這就導(dǎo)致了decisionHandler()這個(gè)handler可能會(huì)被多次執(zhí)行。
那解決問題的方向就是修改代碼保證WKWebView單次LoadRequest只調(diào)一次此代理方法~
修改如下: