How to write a timeout handler for WKWebView, when default delegates are not getting called for didFailNavigation.
WKWebView delegate are set & DidFinishNavigation or didFailProvisionalNavigation is getting called.
Use the error.code value of the error that didFailProvisionalNavigation creates and add your 'handler' code there:
func webView(webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: NSError) {
        if error.code == -1001 { // TIMED OUT:
            // CODE to handle TIMEOUT
        } else if error.code == -1003 { // SERVER CANNOT BE FOUND
            // CODE to handle SERVER not found
        } else if error.code == -1100 { // URL NOT FOUND ON SERVER
            // CODE to handle URL not found
        }
    }
                        Use this delegate method
 webView:didFailProvisionalNavigation:withError:
Document
Invoked when an error occurs while starting to load data for the main frame.
And check the error code
NSURLErrorTimedOut = -1001
All the error code list
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With