通过在WKWebView中评估JavaScript获取HTML

通过在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)

我正在iOS应用程序中使用
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
}