代码之家  ›  专栏  ›  技术社区  ›  Bob

检查UIWebView是否已在Swift中加载完毕

  •  1
  • Bob  · 技术社区  · 7 年前

    我正在制作一个应用程序,加载UIWeb视图,并在网页完全加载时运行一行代码。

    我正在使用以下代码加载网页:

        let links = URL (string: "https://example.com")
        let loadpage = URLRequest(url: links!)
        webPage.loadRequest(load)
    

    如何在网页完成时运行一段代码?我在网上尝试了一些示例,但网页在检查是否已加载时停止加载?

    谢谢

    1 回复  |  直到 7 年前
        1
  •  3
  •   Dávid Pásztor    7 年前

    如以下文件所述: UIWebView ,对于针对iOS8或更高版本的应用,您应该使用 WKWebView 相反

    使用时 WKWebView ,您可以使您的类符合 WKNavigationDelegate 和委托方法 func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) 将在webview完成加载网络请求后调用。

    如果出于某种原因,您仍然以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")
        }
    }