某些锚点可能具有指定或未指定文件名的下载属性(Link)。如何在func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void)
中检索此文件名?
答案 0 :(得分:0)
似乎没有任何参数webview和navigationAction不会公开所单击锚标记的下载属性的值。
我通过调用 webview.evaluateJavascript()通过从NavigationAction.request.url.absoluteString收到的href属性执行 document.querySelector()解决了这一问题: / p>
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
webView.evaluateJavaScript("document.querySelector('[href=\"" + navigationAction.request.url.absoluteString + "\"]').download") {(result, error) in
let fileName = result as? String ?? "FALLBACK DEFAULT NAME.csv"
...
}
}