我想在网页完全加载(包括图像)后才在WKWebView中运行特定脚本。我到目前为止所做的是运行func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!)
函数并在self.webView.evaluateJavaScript(...)
内调用didFinish
,但我注意到didFinish
在网页完全加载之前触发。为了正确运行我的代码,我一直在使用DispatchQueue.main.asyncAfter(deadline: .now() + 0.6)
来延迟功能并为网页提供足够的时间来下载内容;但是,我想要一个更标准化的版本 - 例如,如果WiFi连接速度很慢,那么延迟不足以阻止功能发射。
如何在网页完全加载之前等待我的webView.evaluateJavaScript(...)
?
这是我到目前为止所尝试的,但它根本不起作用:
self.webView.evaluateJavaScript("function getHTML() { return document.documentElement.innerHTML; } window.onload = getHTML", completionHandler: { (html: Any?, error: Error?) in`
非常感谢任何帮助!