我正在使用以下代码从我的服务器加载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”事件? 抱歉英语不好,我是意大利人(:
答案 0 :(得分:15)
您需要像这样实施UIWebViewDelegate
并使用webViewDidFinishLoad
知道网页已成功加载,为此设置webView
delegate
与您的viewController
像这样,并在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
}
}
答案 1 :(得分:2)
在webView?.loadRequest(NSURLRequest(URL: url))
之后,将webView
设置为self
(写下以下行)。
webView.delegate = self
实施webview delegate方法。
完成页面加载后,您将在func webViewDidFinishLoad(_ webView: UIWebView)
中收到回调。
func webViewDidFinishLoad(webView: UIWebView) {
//handle the callback here when page load completes
}
答案 2 :(得分:0)
只需使用effective
;
func webViewDidFinishLoad(webView : UIWebView) {
// Here your loaded codes.
}
答案 3 :(得分:0)
如果有人正在寻找WKWebView的解决方案,请实现WKNavigationDelegate并使用:
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
}