2015-03-14 1 views
1

Я пытаюсь отобразить сообщение об ошибке для моего веб-просмотра, и мне нужно знать URL, который не доступен, поэтому я реализовал метод делегата:Как я могу получить не удалось URL из метода didFailProvisionalNavigation

- (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(WKNavigation *)navigation withError:(NSError *)error { 
    [self.addressBar finishLoadingProgressAnimated:YES]; 
    NSLog(@"%@", webView.URL); 
    [self showErrorPageForURL:error.userInfo[NSErrorFailingURLStringKey]]; 
} 

но NSErrorFailingURLStringKey устарел, поэтому как я могу получить неудачный URL? Интерфейс WKNavigation пуст. webView.URL == 0 в тот момент.

ответ

1

Вы можете использовать NSURLErrorFailingURLStringErrorKey для замены NSErrorFailingURLStringKey. Если вы перейдете к его определению в Xcode, вы найдете нижеприведенное обсуждение.

Эта константа замещает NSErrorFailingURLStringKey, который был устаревшим в Mac OS X 10.6. Обе константы относятся к тому же значению для обратной совместимости, но это имя символа имеет лучший префикс.

0

Swift 3 или Свифта 4

func webView(_ webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: Error) { 
    if error._domain == "WebKitErrorDomain" { 
     if let info = error._userInfo as? [String: Any] { 
      if let url = info["NSErrorFailingURLKey"] as? URL { 

      } 
      if let urlString = info["NSErrorFailingURLStringKey"] as? String { 

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