2016-08-19 3079 views
4

我用Xcode和Swift只用一個WebView製作了iOS應用程序。有時,WebView渲染的網站會崩潰。在這種情況下,我想重新加載WebView。什麼動作觸發webViewWebContentProcessDidTerminate函數

要做到這一點,我讀了存在的iOS 9新的觸發器時,誰在叫:

web視圖的web內容的過程被終止。

來源:iOS Developer Library

所以我這個功能添加到我的ViewController文件:

func webViewWebContentProcessDidTerminate(webView: WKWebView){ 
    print("Reload"); 
    self.webView!.reload(); 
} 

但是,當我的網站崩潰沒有追加,所以我不知道:在這種情況下webViewWebContentProcessDidTerminate被稱爲?

+0

上的任何更新? – Randy

+1

沒有對不起,我放棄:(但我很想知道是否有人找到答案。 – Jean

回答

2

kristfal發現了一些有趣的行爲:

如果應用程序在前臺運行,故障恢復是通過webViewWebContentProcessDidTerminate工作 非常好。它只需重新加載wlwebview的 。沒有新的webview實例被創建,所以沒有更多的內存問題(當前實現泄漏)。

當應用程序從後臺返回時,很容易在不調用webViewWebContentProcessDidTerminate的情況下崩潰 webview。 應用程序將嘗試通過 applicationDidBecomeActive重新加載webview,但如果它失敗(這似乎發生在 大約1/10次),它會崩潰整個應用程序以防止 卡住在無限加載循環中。

來源:https://github.com/Telerik-Verified-Plugins/WKWebView/issues/248#issuecomment-235241805

相關問題