Захватить загруженный URL веб-страницы? WKWebView macOS - PullRequest
0 голосов
/ 27 октября 2019
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    self.urlText.stringValue = String(describing: webView.url!)
}

Это не работает в 100% случаев.

Примером может служить переход на reddit. Я нажимаю на ветку, и она меняет URL, что нормально, но если я нажимаю кнопку домашней страницы Reddit, она не меняет URL на www.reddit.com даже после загрузки на 100%.

Любая помощьоценили.

1 Ответ

0 голосов
/ 01 ноября 2019

Что еще происходит в вашем контроллере вида? Я не могу воспроизвести вашу проблему с кодом ниже. Вы пробовали это в изолированном проекте?


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


}


...