Swift 未调用WKNavigationDelegate方法
我正试图用webview编写一个控制器,我需要WKNavigationDelegate方法,问题是这些方法根本没有被执行 这是我的控制器:Swift 未调用WKNavigationDelegate方法,swift,wkwebview,swift4.2,Swift,Wkwebview,Swift4.2,我正试图用webview编写一个控制器,我需要WKNavigationDelegate方法,问题是这些方法根本没有被执行 这是我的控制器: import UIKit import WebKit public class WebViewController: UIViewController { private let webView: WKWebView = WKWebView() override public func viewDidLoad() { s
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会正确加载网站。有没有人遇到过类似的问题,或者知道我是否做错了什么看起来您正在使用
WKWebViewDelegate
方法添加private
,删除类似的方法,它就会起作用
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")
}
}
试试看,也别忘了在WebView或任何你想加载的地方加载URL。你试过在每个方法中添加断点吗?@Shabirjan是的,这就是我测试itOk的方式只是一个提示,尝试从每个
委托
方法中删除private
,然后重试。这不起作用,我正在正确加载url。我创建了演示项目,这些委托方法都被激发。公开可见性是必要的,愚蠢的错误。感谢明确标记这些代理Public
不是必需的。您确定吗?你试过了吗?我在没有使用公共修饰符的情况下进行了测试,但它不起作用,XCode还显示了以下消息:“实例方法‘webView(uxIdCommit:)’几乎符合可选要求…”