如何从macOS中的webview下载文件?

时间:2016-12-06 23:43:50

标签: macos cocoa webview swift3

我正在构建一个浏览器。

webview具有mainframeURL和accessibilityURL等功能列表。

我还想弄清楚如何通过这样做来获得更新链接:

@IBOutlet weak var webview: WebView!

func webViewDidFinishLoad(_ webView : WebView) {
    let url = self.webview.mainFrameURL

    if  url == nil {
        print("http://google.com/")   
    }
    else {
        print(url )
    }
}

我想知道如何从WebView访问网站的下载按钮。

2 个答案:

答案 0 :(得分:0)

如果用户点击了链接,webView(_:decidePolicyForNavigationAction:request:frame:decisionListener:) 将调用WebView的WebPolicyDelegate的委托方法。您可以在此处理下载。

或者,如果您可以访问下载按钮"意味着获取一个按钮元素本身,你可以挖掘DOMElement树:

extension WebView {
    var rootElement: DOMElement {
        return self.mainFrame.domDocument.documentElement
    }
} 

答案 1 :(得分:0)

我试图以这种方式实施。

func webView( _ webView: WebView!,
                      decidePolicyForNavigationAction actionInformation: [AnyHashable : Any]!,
                      request: URLRequest!,
                      frame: WebFrame!,
                      decisionListener listener: WebPolicyDecisionListener!){
   webView.stringByEvaluatingJavaScript(from: "document.getElementById('Download').click()")
   llet url = request.url!.absoluteString 
    // I need to get the url link 
   print( url)
        }
override func viewDidLoad() {
    super.viewDidLoad()
  /// how can I implement the function to make it work ?
    self.webView(NSwebView, decidePolicyForNavigationAction: nil, request: nil, frame: nil, decisionListener: nil)
}