2016-12-06 3 views
0

Ich baue einen Browser.Wie lade ich Dateien von webview in macOS herunter?

webview hat eine Liste von Funktionen wie MainframeURL und AccessibilityURL.

ich auch Abbildung heraus, wie den Update-Link zu erhalten, indem Sie diese:

@IBOutlet weak var webview: WebView! 

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

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

Ich frage mich, wie ich Zugang bekommen kann von WebView Button Website zum Download bereit.

Antwort

0

Wenn Benutzer auf einen Link klickt, wird webView(_:decidePolicyForNavigationAction:request:frame:decisionListener:) Delegate-Methode von WebView WebPolicyDelegate aufgerufen werden. Sie können Ihren Download hier bearbeiten.

Oder wenn Ihr „erhalten Sie Zugriff Taste zum Download“: ein Knopfelement selbst erhalten, können Sie DOMElement Baum graben:

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

Vielen Dank für die Hilfe. Ich brauche mehr Tipps, um meine Arbeiten zu machen. Webview von swift bietet keine kostenlose Funktionalität zum Herunterladen und Hochladen von Dateien auf eine Website. Es kann nur surfen. Ich möchte jedoch immer noch "Downloadpfad" oder "Pfad hochladen" von der Website über Webview abrufen, indem Sie unten auf die Website klicken oder die Unterseite hochladen. Daher kann ich Dateien auf die Website herunterladen oder hochladen. – N4A

+0

Es funktioniert nicht. Ich frage mich, wie kann ich es verbessern? Wie verwendet man die Erweiterung WebView { var rootElement: DOMEelement { return self.mainFrame.domDocument.documentElement } Haben Sie ein Beispiel? Vielen Dank. } – N4A

0

ich auf diese Weise zu implementieren, hatte versuchen.

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) 
} 
+0

Um URL-Link in Webview zu erhalten, indem Sie darauf klicken, webView (_ webView: WebView !, decidePolicyForNavigationAction actionInformation: [AnyHashable: Beliebige] !, Anfrage: URLRequest!, Frame: WebFrame! DecisionListener Listener: WebPolicyDecisionListener!) Muss benutzt. Aber ich kann es nicht in viewDidLoad() ausführen, um die Funktion zu aktivieren. Bitte lassen Sie mich wissen, wie es geht. Vielen Dank. – N4A

Verwandte Themen