WKWebview не работает правильно при предварительной загрузке - PullRequest
0 голосов
/ 10 февраля 2020

Я пытаюсь посчитать страницы на нескольких HTML с использованием WKWebview loadHtmlString, а затем -

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {

    webView.evaluateJavaScript("document.body.offsetHeight") { (webViewHeight, err) in 
                    numberOfPages = Int(ceil(CGFloat(webViewHeight) / webView.frame.height))
                }
}

Но когда я пытаюсь вызвать свой первый loadHtmlString, это веб-представление (только при первом вызове HTML ... Когда я снова вызываю loadHtmlString в том же веб-просмотре, все работает нормально) Я получаю ложное значение height при первой попытке (поскольку текст HTML не отображается или игнорируется css или что-то еще - я получаю 25 вместо 90)

Мне нужно получить правильную высоту с первой попытки, есть идеи?

1 Ответ

0 голосов
/ 10 февраля 2020

Вы можете установить WKWebview с URL-адреса следующим образом:

let url : URL = URL(string: strUrl)!
 webView.load(URLRequest(url: url))

И с HTML Строка, например:

webView.loadHTMLString(htmlStr, baseURL: nil)
...