在我的 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 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

多个 WKWebView 实例的独立 webView didFinish WKNavigationDelegate 方法

加载 Webview 时显示图像

在我的 webview 应用程序上调用虚拟方法 'int android.graphics.Bitmap.getWidth()' on an null object reference"

Xamarin SFSafariViewController DidFinish 未调用

Android webview中隐藏在键盘下方的文本框

屏幕锁定时会停止WebView媒体内容(调用活动的onStop)