未调用WKNavigationDelegate方法

问题描述 投票:-1回答:1

我正在尝试用webview编写一个控制器,我需要WKNavigationDelegate方法,问题是这些方法根本没有被执行。

这是我的控制器:

import UIKit
import WebKit

public class WebViewController: UIViewController {

    private let webView: WKWebView = WKWebView()

    override public func viewDidLoad() {
        super.viewDidLoad()

        webView.navigationDelegate = self
        webView.isUserInteractionEnabled = true

        view = webView
    }
}

extension WebViewController: WKNavigationDelegate {
    private func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!) {
        debugPrint("didCommit")
    }

    private func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
        debugPrint("didFinish")
    }

    private func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
        debugPrint("didFail")
    }
}

使用容器视图将此控制器添加到顶视图控制器,webview也正确加载网站。有没有人有类似的问题或者知道我做错了什么

swift wkwebview swift4.2
1个回答
1
投票

看起来你正在添加privateWKWebViewDelegate方法,删除这样的,它将工作。

extension ViewController: WKNavigationDelegate {
 func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!) {
    debugPrint("didCommit")
}

 func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    debugPrint("didFinish")
}

 func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
    debugPrint("didFail")
}

} enter image description here尝试这一点,也不要忘记在WebView或任何你想加载的URL中加载URL。

© www.soinside.com 2019 - 2024. All rights reserved.