使用WKWebView時,ViewController不走dealloc方法的問題解決方法

主要原因是因為這句代碼造成循環(huán)引用

[self.webView.configuration.userContentController addScriptMessageHandler:self name:@"popvc"];

1 找到一種方法通過把scriptMessageHandler轉交給一個新類處理,但是相對下面的方法來說代碼太多,就不作記錄了。

2 還有一種更好的方法就是在控制器pop出棧之前用removeScriptMessageHandlerForName移除掉addScriptMessageHandler

[self.contentWKWebView.configuration.userContentController removeScriptMessageHandlerForName:@"popvc"];

需要注意的是,我這里pop出棧成功后遇到了crash,導致這次crash的原因是強引用了scrollview,代理釋放不掉,所以會報錯,所以

self.webView.scrollView.delegate=nil;

這樣就好了

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容