通过在WKWebView中评估JavaScript获取HTML
我正在iOS应用程序中使用通过在WKWebView中评估JavaScript获取HTML,javascript,html,ios,swift,wkwebview,Javascript,Html,Ios,Swift,Wkwebview,我正在iOS应用程序中使用WKWebView,加载网页后,我想获得gmail.com的HTML。我在ViewDidDisplay中调用的函数中有一个表达式: func getHTML() { webView.evaluateJavaScript("document.documentElement.outerHTML.toString()", completionHandler: { (html: Any?, error: Error?) in print(html)
WKWebView
,加载网页后,我想获得gmail.com的HTML。我在ViewDidDisplay中调用的函数中有一个表达式:
func getHTML() {
webView.evaluateJavaScript("document.documentElement.outerHTML.toString()", completionHandler: { (html: Any?, error: Error?) in
print(html)
})
}
但是,当我运行此函数时,我在控制台中得到以下输出:
Optional(<html><head></head><body></body></html>)
问题是网页没有完全加载!我在ViewDidAppear中调用了我的函数,但是在我添加了一个按钮并在按下按钮时调用了javascript之后,我得到了我想要的HTML
// MARK: Outlets
@IBOutlet weak var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
let url = URL(string: "https://www.gmail.com")!
let request = URLRequest(url: url)
webView.navigationDelegate = self
self.webView.load(request)
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
getHTML() // the function posted above
}