未调用 WKNavigationDelegate 方法
WKNavigationDelegate methods not called
我正在尝试用 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")
}
}
正在使用容器视图将此控制器添加到顶视图控制器,同时 web 视图正确加载网站。有没有人有类似的问题或者知道我做错了什么
看起来您正在添加 private
和 WKWebViewDelegate
方法,像这样删除它们,它将起作用。
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。
我正在尝试用 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")
}
}
正在使用容器视图将此控制器添加到顶视图控制器,同时 web 视图正确加载网站。有没有人有类似的问题或者知道我做错了什么
看起来您正在添加 private
和 WKWebViewDelegate
方法,像这样删除它们,它将起作用。
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")
}
}