Я хочу запустить определенный скрипт в 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`
Любая помощь очень ценится!