UIWebView加载完成事件中的Swift实现

5
我正在使用以下代码从我的服务器在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!)

这段代码是有效的,但我该如何接收“onPageLoad”事件呢? 抱歉我的英语不好,我是意大利人(:

检查我的答案一次,这样会更好地理解它。 - Nirav D
4个回答

16
您需要像这样实现UIWebViewDelegate并使用webViewDidFinishLoad来了解页面是否已成功加载,为此请按照以下示例设置webViewdelegate, 并在viewController中实现webViewDidFinishLoad方法,如下所示的示例。
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
    }
}

5

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

添加 webView.navigationDelegate = self

然后使用:

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

}
    

1
不要忘记添加 webView.navigationDelegate = self - MarekB

2
在执行webView?.loadRequest(NSURLRequest(URL: url))之后,将webView设置为self(写下面这行代码)。
webView.delegate = self

实现webview代理方法。

在页面加载完成时,您将在func webViewDidFinishLoad(_ webView: UIWebView)中获得回调。

   func webViewDidFinishLoad(webView: UIWebView) {
        //handle the callback here when page load completes
    }

你能更具体地说明要做什么吗?抱歉。 - Alessandro Zago
1
我已经更新了我的答案并提供了更多细节。请查看 - pkc456

0

只需使用 effective 和 ; 即可。

 func webViewDidFinishLoad(webView : UIWebView) {

 // Here your loaded codes.

 }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接