简体   繁体   中英

Grab loaded webpage URL? WKWebView macOS

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    self.urlText.stringValue = String(describing: webView.url!)
}

This does not work 100% of the time.

An example would be when I navigate to reddit. I click a thread and it changes URL which is fine, but if I click the reddit home button, it doesn't change URL to www.reddit.com even after it is 100% loaded.

Any help is appreciated.

What else is going on in your view controller? I'm not able to reproduce your problem with the code below. Have you tried this in an isolated project?


import Cocoa
import WebKit

class ViewController: NSViewController {

    @IBOutlet weak var webView: WKWebView!
    @IBOutlet weak var urlLabel: NSTextField!

    override func viewDidLoad() {
        super.viewDidLoad()

        let req = URLRequest(url:
            URL(string: "https://reddit.com")!)

        webView.load(req)        
    }


    @IBAction func getUrlClicked(_ sender: Any) {
        guard let url = webView.url else { return }
        urlLabel.stringValue = url.absoluteString

        print("url: \(String(describing: webView.url!))")
    }

    override var representedObject: Any? {
        didSet {
        // Update the view, if already loaded.
        }
    }


}


The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM