WKWebView didCommit 上传文件时不调用
WKWebView didCommit not calling when uploading file
我使用的是 Xcode
和 Swift
的最新版本。
在我的应用程序中有一个 WKWebView
加载一个页面,该页面包含一个输入字段以将文件上传到我的服务器。
我的应用程序中有以下代码:
func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!) {
networkActivityIndicator.startAnimating()
}
这将在加载网页时显示网络 activity 指示器。
出于某种原因,当我开始上传文件时没有调用它。上传文件准备就绪时将调用此函数:
- 我 select 一个文件并点击 submit/upload 文件。
- 文件上传开始(这可能需要一段时间),
WKWebView didCommit
没有被触发。
- 文件上传准备就绪,网页重新加载。现在
WKWebView didCommit
被调用了。
为什么 WKWebView didCommit
在我提交表单以上传文件后没有被调用?
解决方案是将 startAnimating()
添加到 WKWebView decidePolicyFor
,如下所示:
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
decisionHandler(.allow)
networkActivityIndicator.startAnimating()
}
我使用的是 Xcode
和 Swift
的最新版本。
在我的应用程序中有一个 WKWebView
加载一个页面,该页面包含一个输入字段以将文件上传到我的服务器。
我的应用程序中有以下代码:
func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!) {
networkActivityIndicator.startAnimating()
}
这将在加载网页时显示网络 activity 指示器。
出于某种原因,当我开始上传文件时没有调用它。上传文件准备就绪时将调用此函数:
- 我 select 一个文件并点击 submit/upload 文件。
- 文件上传开始(这可能需要一段时间),
WKWebView didCommit
没有被触发。 - 文件上传准备就绪,网页重新加载。现在
WKWebView didCommit
被调用了。
为什么 WKWebView didCommit
在我提交表单以上传文件后没有被调用?
解决方案是将 startAnimating()
添加到 WKWebView decidePolicyFor
,如下所示:
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
decisionHandler(.allow)
networkActivityIndicator.startAnimating()
}