在我的 webview 上调用 didFinish 不起作用

Posted

技术标签:

【中文标题】在我的 webview 上调用 didFinish 不起作用【英文标题】:calling on didFinish does not work on my webview 【发布时间】:2020-05-05 20:00:55 【问题描述】:

我是 ios/Swift 的新手,我正在尝试监听 didFinish 事件,但它没有被调用

    class MyWebView: UIViewController, WKScriptMessageHandler, WKNavigationDelegate 

    public var baseController : UIViewController?

    var linkOptions = [String: String]()


    @IBOutlet var web: WKWebView!

    override func loadView() 
        super.loadView()
        web.configuration.userContentController.add(self, name: "jsMessageHandler")
        web.configuration.userContentController.add(self, name: "jsErrorMessageHandler")
    

    override func viewDidLoad() 
        super.viewDidLoad()

        let request = URLRequest(url: formatUrl())
        web.load(request)
        web.navigationDelegate = self
        web.addObserver(self, forKeyPath: "URL", options: .new, context: nil)
    

    func web(_ web: WKWebView, didFinish  navigation: WKNavigation!)
    
        print("---Hitted URL--->") // here you are getting URL
    

我在网上关注了一些示例,但没有一个适合我。

【问题讨论】:

【参考方案1】:

在加载请求之前尝试设置 navigationDelegate

【讨论】:

以上是关于在我的 webview 上调用 didFinish 不起作用的主要内容,如果未能解决你的问题,请参考以下文章