Загружать пользовательскую ошибку htmlString, когда WKWebView loadRequest терпит неудачу

В моем контроллере у меня есть вызов WKWebViewInstance.loadRequest (url). Если интернет недоступен, я хочу загрузить сообщение об ошибке в WKWebView.

Я обнаружил, что

func webView(webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: NSError) 

вызывается, когда навигация WKWEbView завершается с ошибкой без подключения к Интернету. Когда я вызываю вызов webView.loadHtmlString () внутри вышеуказанного метода делегирования, ничего не происходит.

Как определить отсутствие сетевого подключения, в то время как запрос навигации WKWEbView сделан, и вместо этого загружать исправленное сообщение об ошибке в веб-представление?

Мой код метода делегата

  func webView(webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: NSError) { webView.stopLoading() webView.loadHTMLString(Constants.OfflineHtmlString!,baseURL: nil) } 

ЕСЛИ необходимо отображать информацию об ошибке для пользователя, когда он не подключен к Интернету,

Вы можете проверить, подключены ли вы к Интернету даже до загрузки запроса; Reachability – популярный api, который обычно помогает проверить это. Кажется, здесь есть быстрый порт https://github.com/ashleymills/Reachability.swift

Я рекомендую воспользоваться вышеуказанным вариантом; В случае, если вы все еще хотите разрешить ему сбой, а затем отобразить ошибку, убедитесь, что вы правильно OfflineHtmlString свой OfflineHtmlString и проверьте код ошибки перед загрузкой OfflineHtmlString ;

Я не знаю, действительна ли ваша строка html; Если это действительно так, я бы сделал что-то вроде ниже;

 func webView(webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: NSError) { if(error.code == NSURLErrorNotConnectedToInternet){ webView.loadHTMLString(Constants.OfflineHtmlString!,baseURL: nil) } } 
  • WKWebView не отображает веб-страницу, даже если она заканчивает загрузку
  • Использовать общие WKWebViewCookies для запроса
  • WKProcessPool можно хранить на постоянной основе с помощью NSUserDefaults или что-то еще?
  • Как захватить краны, игнорируемые WKWebView
  • Кэш для WKWebView
  • Как получить AVPlayer на веб-странице с помощью WKWebView в swift?
  • didFinishNavigation не называется
  • Изменение клавиши возврата клавиатуры в WKWebView
  • Получение заголовков HTTP-ответа из WKWebview
  • WKWebView, прокрутка веб-страницы вверх
  • WKWebView ScaleToFit
  • Interesting Posts

    Безголовый токен с маркером GTMOAuth2SignIn

    Отладка в XCode – запуск кода и точек останова

    Пользовательская схема URL для нового приложения iOS для Facebook

    Операция не может быть завершена. (Ошибка OSStatus -600.) Не удается запустить приложение в симуляторе

    UISegmentedControl ошибка делителя

    Ошибка компоновщика: ld: библиотека не найдена для -lAppLovinSdk

    – : непризнанный селектор, отправленный в экземпляр 0x7490da0 '

    UICollectionView с multi-select не будет выбирать более десятка элементов

    Swift3 iOS – Как настроить функцию запуска UITapGestureRecognizer

    Вход в Facebook и Google+

    Как создать очень простой UITableView программно с динамической высотой ячейки и автоматической компоновкой?

    Отображение UIImagePickerController в UIPopoverController с существующим UINavigationController (добавление кнопки возврата)

    SpriteKit – минимизируйте квадроцикл

    Можно ли программным образом получить идентификатор команды моего приложения iOS?

    push-уведомление в ios

    Давайте будем гением компьютера.