Я использую WKWebView в приложении Swift, созданном для iOS 8+. Я использую экземпляры WKWebView во множестве представлений в моем приложении, например. в каждой вкладке в моем контроллере представления вкладок интерфейс основан на WKWebView.
Я и мои тестеры заметили, что эти взгляды иногда заканчиваются совершенно пустыми, и после изучения этой проблемы кажется, что WKWebView может сбой, и пустой результат является результатом. К счастью, это не сбивает приложение из-за того, как работает WKWebView, но я также не понимаю, как ловить/записывать информацию о том, что вызвало его сбой (если это на самом деле происходит).
Как определить, если/почему WKWebView разбился?
Мое текущее решение проблемы заключается в том, что я использую KVO (фактически, Facebook KVOController), чтобы отслеживать свойство URL-адреса WKWebView, и если он идет от non-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
}
}
Но, очевидно, было бы неплохо выяснить основную причину сбоя.