检查 UIWebView 是否在 Swift 内完成加载
Check if UIWebView is done loading in Swift
我正在制作一个加载 UIWeb 视图的应用程序,并且 运行 在网页完全加载时添加一行代码。
我正在使用这样的代码加载网页:
let links = URL (string: "https://example.com")
let loadpage = URLRequest(url: links!)
webPage.loadRequest(load)
如何在网页完成后运行一段代码?我在网上尝试了一些示例,但网页在检查是否已加载时停止加载?
谢谢!
如 UIWebView
的文档所述,对于面向 iOS8 或更高版本的应用,您应该改用 WKWebView
。
当使用 WKWebView
时,您可以使 class 符合 WKNavigationDelegate
并且一旦 webview 完成加载网络请求,就会调用委托方法 func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!)
.
如果出于某种原因您仍然以 iOS7 或任何以前的 iOS 版本为目标并因此使用 UIWebView
,您可以使用 UIWebViewDelegate
的 func webViewDidFinishLoad(_ webView: UIWebView)
方法。
UIWebView
解决方案的框架代码:
class WebVC: UIViewController {
@IBOutlet weak var webView: UIWebView!
override func viewDidLoad() {
webView.delegate = self
let url = URL(string: "https://example.com")
let request = URLRequest(url: url)
webView.loadRequest(request)
}
}
extension WebVC: UIWebViewDelegate {
func webViewDidFinishLoad(_ webView: UIWebView) {
print("Finished loading")
}
}
我正在制作一个加载 UIWeb 视图的应用程序,并且 运行 在网页完全加载时添加一行代码。
我正在使用这样的代码加载网页:
let links = URL (string: "https://example.com")
let loadpage = URLRequest(url: links!)
webPage.loadRequest(load)
如何在网页完成后运行一段代码?我在网上尝试了一些示例,但网页在检查是否已加载时停止加载?
谢谢!
如 UIWebView
的文档所述,对于面向 iOS8 或更高版本的应用,您应该改用 WKWebView
。
当使用 WKWebView
时,您可以使 class 符合 WKNavigationDelegate
并且一旦 webview 完成加载网络请求,就会调用委托方法 func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!)
.
如果出于某种原因您仍然以 iOS7 或任何以前的 iOS 版本为目标并因此使用 UIWebView
,您可以使用 UIWebViewDelegate
的 func webViewDidFinishLoad(_ webView: UIWebView)
方法。
UIWebView
解决方案的框架代码:
class WebVC: UIViewController {
@IBOutlet weak var webView: UIWebView!
override func viewDidLoad() {
webView.delegate = self
let url = URL(string: "https://example.com")
let request = URLRequest(url: url)
webView.loadRequest(request)
}
}
extension WebVC: UIWebViewDelegate {
func webViewDidFinishLoad(_ webView: UIWebView) {
print("Finished loading")
}
}