如何从WKWebView获取下载属性?

时间:2017-07-12 19:42:40

标签: macos download webkit wkwebview

某些锚点可能具有指定或未指定文件名的下载属性(Link)。如何在func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void)中检索此文件名?

1 个答案:

答案 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"

        ...

    }

}