Как узнать, когда JavaScript завершил рендеринг в WKWebView? - PullRequest
0 голосов
/ 02 июля 2019

Я загружаю содержимое HTML в WKWebView.Я хочу изменить стиль загружаемого контента по требованию, и для этого я использовал метод valuJavaScript из WKWebView.Моя проблема в том, что, когда я пытаюсь изменить стиль тяжелого HTML, требуется время, чтобы отобразить изменения на экране.Я ищу что-то, чтобы сказать мне, когда рендеринг закончен, чтобы я мог держать пользователей в курсе того, что происходит в пользовательском интерфейсе, отправив им сообщение.

Я пытался использовать window.setTimeout(function(){window.webkit.messageHandlers.FinishShowingLoading.postMessage('some message')},0) и window.addEventListener('load',function(){window.webkit.messageHandlers.FinishShowingLoading.postMessage('some message')},0).В обоих случаях сообщение отправляется до завершения рендеринга, и я не могу понять, в чем проблема.

Вот мой код:

func js(){
let changeJS = "document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust = '200%'; window.webkit.messageHandlers.FinishShowingLoading.postMessage('some message')"
webView.evaluateJavaScript(changeJS) { (result, error) in
    //do something
}
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {

    if message.name == "FinishShowingLoading" {
        // do something
    }}

Я был бы очень признателен за любуюПомогите.Заранее спасибо!

...