UIWebView的Swift onfinish加载事件

Ale*_*ago 4 uiwebview ios swift

我正在WebView使用以下代码从我的服务器加载pdf :

    webView = UIWebView(frame: CGRectMake(0, y, screenSize.width, screenSize.height-y))    
    let url : NSURL! = NSURL(string: urlFile)        
    webView?.loadRequest(NSURLRequest(URL: url))        
    webView?.opaque = false;
    webView?.backgroundColor = UIColor.clearColor()                
    webView?.scalesPageToFit = true;    
    self.view.addSubview(webView!)
Run Code Online (Sandbox Code Playgroud)

此代码有效,但我如何才能收到"onPageLoad"事件?抱歉英语不好,我是意大利人(:

Nir*_*v D 16

你需要UIWebViewDelegate像这样实现并使用webViewDidFinishLoad知道页面已成功加载,为此设置webView delegateviewController喜欢这个,并webViewDidFinishLoad在你的viewController下面的例子中实现方法.

import UIKit
class ViewController: UIViewController, UIWebViewDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()
        webView = UIWebView(frame: CGRectMake(0, y, screenSize.width, screenSize.height-y))
        let url : NSURL! = NSURL(string: urlFile)
        webView?.loadRequest(NSURLRequest(URL: url))
        webView?.opaque = false;
        webView?.backgroundColor = UIColor.clearColor()
        webView?.scalesPageToFit = true; 
        webView?.delegate = self// Add this line to set the delegate of webView
        self.view.addSubview(webView!)       
    }

    func webViewDidFinishLoad(webView : UIWebView) {
        //Page is loaded do what you want
    }
}
Run Code Online (Sandbox Code Playgroud)


nic*_*ade 5

如果有人正在寻找 WKWebView 的解决方案,请实现 WKNavigationDelegate:

添加webView.navigationDelegate = self

然后使用:

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {

}
    
Run Code Online (Sandbox Code Playgroud)