2015-11-05 2 views
4

Как написать обработчик тайм-аута для WKWebView, когда делегаты по умолчанию не получают вызов для didFailNavigation.Как добавить тайм-аут для WKWebview

WKWebView делегат установлен & DidFinishNavigation или didFailProvisionalNavigation получает вызов.

ответ

1

Используйте этот делегат метод

webView:didFailProvisionalNavigation:withError: 

Документ

Вызывается, когда происходит ошибка во время запуска для загрузки данных для основной рамы.

И проверьте код ошибки

NSURLErrorTimedOut = -1001 

Все ошибки code list

+0

Даже этот делегат не вызывался. – Anand

+0

Heads up: потребовалось больше минуты, чтобы вызвать этот метод делегата, когда я запросил неверный URL-адрес и получил NSURLErrorTimedOut – eskimwier

9

Используйте error.code значение ошибки, didFailProvisionalNavigation создает и добавить «обработчик» код там :

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 

     } 
    } 
1

Одним из возможных решений является добавление пользовательских таймер, который начинается, как вы называете loadHTML, loadRequest методы и времени на пользовательском интервале

Смежные вопросы