是指在iOS开发中使用WKWebView进行网页加载时,不使用WKScriptMessageHandler协议来实现与网页交互的回调方式。
WKWebView是苹果推出的用于替代UIWebView的新一代网页浏览器控件,它提供了更好的性能和更多的功能。在使用WKWebView时,可以通过WKScriptMessageHandler协议来实现与网页的交互,通过注册一个自定义的消息处理器,可以接收来自网页的消息并进行相应的处理。
然而,有时候我们并不需要使用WKScriptMessageHandler协议来实现与网页的交互,而是只需要加载网页并获取网页的回调信息。这种情况下,可以通过KVO(Key-Value Observing)来观察WKWebView的属性变化,从而获取回调信息。
具体实现步骤如下:
let webView = WKWebView(frame: CGRect(x: 0, y: 0, width: 320, height: 480))
let url = URL(string: "https://www.example.com")
let request = URLRequest(url: url!)
webView.load(request)
webView.addObserver(self, forKeyPath: "title", options: .new, context: nil)
webView.addObserver(self, forKeyPath: "estimatedProgress", options: .new, context: nil)
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if keyPath == "title" {
// 网页标题变化回调
if let title = webView.title {
print("网页标题:\(title)")
}
} else if keyPath == "estimatedProgress" {
// 网页加载进度变化回调
if let progress = webView.estimatedProgress {
print("网页加载进度:\(progress)")
}
}
}
通过上述步骤,我们可以实现不带WKScriptMessage的WKWebView回调,获取网页的标题和加载进度等信息。需要注意的是,在不需要使用WKScriptMessageHandler协议的情况下,我们无法直接获取网页中的具体内容或执行JavaScript代码,只能获取一些基本的回调信息。
腾讯云相关产品中,与WKWebView相关的产品包括云服务器CVM、云数据库MySQL、云存储COS等。这些产品可以用于搭建和部署网页应用,存储网页资源,提供数据库支持等。具体产品介绍和链接地址可以参考腾讯云官方网站。
领取专属 10元无门槛券
手把手带您无忧上云