如何知道javascript何时在WKWebView中完成渲染?

时间:2019-07-02 06:29:02

标签: javascript ios swift wkwebview

我正在WKWebView中加载html的内容。我想按需更改已加载内容的样式,为此,我使用了WKWebView的评估JavaScript方法。我的问题是,当我尝试更改沉重的html样式时,需要一段时间才能在屏幕上呈现更改。我正在寻找可以在渲染完成时告诉我的信息,以便通过向用户发送消息来使用户了解UI中正在发生的事情。

我尝试使用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
    }}

非常感谢您的帮助。 预先感谢!

0 个答案:

没有答案