2016-08-19 3076 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

相关问题