WKWebView
是苹果公司提供的一个用于在 iOS 和 macOS 应用程序中显示网页内容的视图组件。它基于 WebKit 引擎,提供了高效的网页渲染能力。WKWebView
支持各种网页交互功能,包括链接点击、表单提交等。
WKWebView
在处理复杂网页时内存占用较低。WKWebView
主要有以下几种类型:
WKWebView
的设置。WKWebView
广泛应用于以下场景:
要在 WKWebView
中监听链接点击事件,可以通过实现 WKNavigationDelegate
协议中的 webView(_:decidePolicyFor:decisionHandler:)
方法来实现。
import WebKit
class ViewController: UIViewController, WKNavigationDelegate {
var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
webView = WKWebView(frame: self.view.frame)
webView.navigationDelegate = self
self.view.addSubview(webView)
if let url = URL(string: "https://www.example.com") {
webView.load(URLRequest(url: url))
}
}
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
if let url = navigationAction.request.url {
// 处理链接点击事件
print("Clicked URL: \(url)")
// 决定是否允许导航
decisionHandler(.allow)
} else {
decisionHandler(.cancel)
}
}
}
原因:
navigationDelegate
:确保 WKWebView
的 navigationDelegate
已经正确设置。webView(_:decidePolicyFor:decisionHandler:)
方法。解决方法:
viewDidLoad
方法中设置了 navigationDelegate
:viewDidLoad
方法中设置了 navigationDelegate
:webView(_:decidePolicyFor:decisionHandler:)
方法:webView(_:decidePolicyFor:decisionHandler:)
方法:通过以上步骤,你应该能够成功监听到 WKWebView
中的链接点击事件。
领取专属 10元无门槛券
手把手带您无忧上云