我用Xcode制作了iOS应用程序,用WebView制作了Swift应用程序。有时网站,由那个WebView渲染,崩溃。在这种情况下,我想重新加载WebView。
为此,我读到在iOS 9中有一个新的触发器,它在以下情况下被调用:
web视图的web内容处理被终止。
来源:iOS开发者库
因此,我将这个函数添加到我的ViewController
文件中:
func webViewWebContentProcessDidTerminate(webView: WKWebView){
print("Reload");
self.webView!.reload();
}
但是当我的网站崩溃时,没有任何附加,所以我想知道:在这种情况下,webViewWebContentProcessDidTerminate被调用?
发布于 2016-11-30 15:09:10
kristfal发现了一些有趣的行为:
如果应用程序在前台运行,则通过webViewWebContentProcessDidTerminate可以很好地恢复崩溃。它只是重新加载wkwebview。没有创建webview的新实例,因此没有更多内存问题(当前的实现正在泄漏)。 当应用程序从后台返回时,它很容易在不调用webViewWebContentProcessDidTerminate的情况下破坏When视图。该应用程序将尝试通过applicationDidBecomeActive重新加载网页视图,但如果它失败(似乎发生在1/10次左右),它将使整个应用程序崩溃,以防止陷入无限加载循环。
来源:https://github.com/Telerik-Verified-Plugins/WKWebView/issues/248#issuecomment-235241805
https://stackoverflow.com/questions/39039840
复制相似问题