Xcode: показываем экран загрузки во время рендеринга в wkwebview

К сожалению при использовании wkwebview на IOS, инициализация webkit довольно медлительна. И занимает при первом старте порядка 5-10 секунд. Потому для того чтобы «развлечь» пользователя во время ожидания можно показать например какую-то анимацию.

Загрузку можно организовать как-то так:

Результатом будет показ «фона» и анимации до показа страницы. Далее нам нужно отловить что рендеринг состоялся и убрать анимацию:

wkwebview краш при выборе файла для upload

Собственно суть возникновения ошибки: приложение с wkwebview падает при попытке выбора файла для загрузки на сервер через стандартную вебформу с ошибкой:

Source type must be UIImagePickerControllerSourceTypeCamera

Решение: как оказалось, это происходит из-за не верно по мнению webview заполнения тэга input. Правильно:

xcode: проверка наличия интернет на устройстве и вывод локального html в wkwebview

Задача: при обнаружении отсутствия интернет на устройстве вывести в виджет wkwebview уведомление о его отсутствии оформленное в виде HTML страницы

Решение:

1) Создадим файл Reachability.swift с классом,отдающим доступность:

В основной код добавим слушатель изменения состояния сети и отдающий html страницу при отсутствии интернет:

Вставляем в проект локальную папку с файлом html и файлом картинки:

И изменим код следующим образом: