我正在一个为iOS 8+构建的Swift应用中使用WKWebView。在我的应用中,我在各种视图中使用WKWebView,例如在我的选项卡视图控制器中的每个选项卡中,界面都是基于WKWebView的。我和我的测试人员注意到,这些视图有时会完全变成空白,并且经过研究发现,似乎WKWebView会崩溃,空白视图就是结果。由于WKWebView的运作方式,幸运的是它不会使应用程序崩溃,但我也不确定如何捕获/记录有关导致它崩溃的信息(如果实际上是这样的话)。
我该如何确定WKWebView是否已崩溃以及原因是什么?
我目前处理此问题的方法是使用KVO(实际上是Facebook的KVOController)来监视WKWebView的“URL”属性,如果它从非nil变为nil,我就假定发生了崩溃,并重新加载Webview:
kvoController?.observe(webView, keyPath: "URL", options: NSKeyValueObservingOptions.New|NSKeyValueObservingOptions.Old) { (areaViewController, webView, change) -> Void in
if change[NSKeyValueChangeNewKey] is NSNull && !(change[NSKeyValueChangeOldKey] is NSNull) {
areaViewController.setup() // reload our webview
}
}
但显然,找出崩溃的根本原因是很好的。