检查UIWebView是否在Swift中完成加载

时间:2018-04-28 14:32:49

标签: swift swift3 uiwebview webkit

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

我使用这样的代码加载网页:

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

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

谢谢!

1 个答案:

答案 0 :(得分:1)

正如WKWebView文档中所述,对于面向iOS8或更高版本的应用,您应该使用WKWebView代替。

使用WKNavigationDelegate时,您可以使您的班级符合func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!),并且一旦网页浏览完成加载网络请求,系统就会调用委托方法UIWebView

如果出于某种原因,您仍然定位iOS7或之前的iOS版本并因此使用UIWebViewDelegate,则可以使用func webViewDidFinishLoad(_ webView: UIWebView)的{​​{1}}方法。

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")
    }
}