Запускайте встроенный JavaScript-скрипт только после полной загрузки веб-страницы WKWebView. - PullRequest
0 голосов
/ 25 мая 2018

Я хочу запустить определенный скрипт в 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`

Любая помощь очень ценится!

...