WKWebView didCommit 上传文件时不调用

WKWebView didCommit not calling when uploading file

我使用的是 XcodeSwift 的最新版本。

在我的应用程序中有一个 WKWebView 加载一个页面,该页面包含一个输入字段以将文件上传到我的服务器。

我的应用程序中有以下代码:

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

这将在加载网页时显示网络 activity 指示器。

出于某种原因,当我开始上传文件时没有调用它。上传文件准备就绪时将调用此函数:

  1. 我 select 一个文件并点击 submit/upload 文件。
  2. 文件上传开始(这可能需要一段时间),WKWebView didCommit没有被触发。
  3. 文件上传准备就绪,网页重新加载。现在 WKWebView didCommit 被调用了。

为什么 WKWebView didCommit 在我提交表单以上传文件后没有被调用?

解决方案是将 startAnimating() 添加到 WKWebView decidePolicyFor,如下所示:

func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
        decisionHandler(.allow)
        networkActivityIndicator.startAnimating()
}