【问题标题】:How to get the download attribute from WKWebView?如何从 WKWebView 获取下载属性?
【发布时间】:2017-12-17 09:18:39
【问题描述】:

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

【问题讨论】:

    标签: macos download webkit wkwebview


    【解决方案1】:

    似乎 webview 和 navigationAction 参数都没有公开点击的锚标签的下载属性值。

    我通过调用 webview.evaluateJavascript() 通过我们从 navigationAction.request.url.absoluteString 收到的 href 属性执行 document.querySelector() 解决了这个问题:

    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"
    
            ...
    
        }
    
    }

    【讨论】:

      猜你喜欢
      • 2021-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多