Попробуйте следующим образом.
Сначала , введите код JS, чтобы поймать ошибку в html-содержимом:
window.onerror = function(error) {
alert(error); // Fire when errors occur. Just a test, not always do this.
};
Секунда , отобразить ошибку в методе делегата WKWebView:
func webView(_ webView: WKWebView, runJavaScriptAlertPanelWithMessage message: String, initiatedByFrame frame: WKFrameInfo, completionHandler: @escaping () -> Void) {
let alertController = UIAlertController(title: "alert", message: message, preferredStyle: UIAlertControllerStyle.alert)
alertController.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.cancel, handler: nil))
self.present(alertController, animated: true, completion: nil)
print("An error from web view: \(message)")
}
Не забудьте установить делегата:
webView.uiDelegate = self
Если вы хотите избежать предупреждений, альтернативный способ - использовать метод decidePolicyForNavigationAction
для получения обратного вызова JS, который похож на window.open("error://message","_self")