【问题标题】:WKNavigationDelegate methods not called未调用 WKNavigationDelegate 方法
【发布时间】:2019-04-22 12:59:24
【问题描述】:

我正在尝试使用 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 也正确加载了网站。有没有人遇到过类似的问题或者知道我做错了什么

【问题讨论】:

  • 你试过在每个方法中添加断点吗?
  • @Shabirjan 是的,我做到了,这就是我测试它的方式
  • 好吧,只是提示,尝试从每个 Delegate 方法中删除 private 并尝试。

标签: swift wkwebview swift4.2


【解决方案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")
}

} 试试这个,也不要忘记在 WebView 中加载 URL 或任何你想加载的内容。

【讨论】:

  • 这不起作用,我正在正确加载网址
  • 好吧,我创建了演示项目,这些 Delegates 方法都被解雇了。
  • public 可见性是必要的,愚蠢的错误。谢谢
  • BTW 明确标记这些代表Public 是不必要的。
  • 你确定Shabir吗?你试过吗?我已经在没有 public 修饰符的情况下进行了测试,但它不起作用,XCode 还显示以下消息:“Instance method 'webView(_:didCommit:)' Nearly matches optional requirements...”
猜你喜欢
  • 1970-01-01
  • 2016-08-14
  • 1970-01-01
  • 2014-03-04
  • 1970-01-01
  • 2019-09-01
  • 2015-10-15
  • 2014-06-26
相关资源
最近更新 更多