Я использую новейшую версию Xcode и Swift.

В моем приложении есть WKWebView, который загружает страницу, содержащую поле ввода для загрузки файлов на мой сервер.

В моем приложении есть следующий код:

func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!) {
        networkActivityIndicator.startAnimating()
    }

Это покажет индикатор сетевой активности во время загрузки веб-страницы.

По какой-то причине это не вызывается, когда я начинаю загружать файл. Это будет вызвано, когда файл будет готов:

  1. Я выбираю файл и нажимаю, чтобы отправить / загрузить файл.
  2. Начнется загрузка файла (это может занять некоторое время), WKWebView didCommit не запускается.
  3. Загрузка файла готова, и веб-страница перезагружается. Теперь вызывается WKWebView didCommit.

Почему не вызывается WKWebView didCommit, как только я отправляю форму для загрузки файла?

0
David 25 Июн 2020 в 11:08

1 ответ

Лучший ответ

Решением было добавить startAnimating() к WKWebView decidePolicyFor следующим образом:

func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
        decisionHandler(.allow)
        networkActivityIndicator.startAnimating()
}
1
David 25 Июн 2020 в 08:55