检查 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,您可以使用 UIWebViewDelegatefunc 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")
    }
}