Результаты высоты не верны в WKWebView - PullRequest
0 голосов
/ 07 января 2020

Я использую универсальный c WKWebView, в котором я вычисляю высоту с помощью следующего кода ..

webView.evaluateJavaScript(
                "document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '\(Int(100))%'", completionHandler: { (result, err) in
                    if result != nil {
                        if let _ = self.delegate {
                            webView.frame.size.height = 1
                            webView.scrollView.isScrollEnabled = false
                            webView.contentMode = .scaleAspectFit
                            webView.evaluateJavaScript("var meta = document.createElement('meta');" +
                                "meta.name = 'viewport';" + " " +
                                "meta.content = 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no';" +
                                "var head = document.getElementsByTagName('head')[0];" + "head.appendChild(meta);", completionHandler: { (result, error) in
                                    webView.evaluateJavaScript("document.documentElement.scrollHeight", completionHandler: { (height, error) in
                                        let h = height as! CGFloat
                                        if self.bodyContentHeight != h {
                                            self.delegate!.webViewDidGotHeight(h, indexPath: self.rowIndex)
                                        }
                                    })
                            })
                        }
                    }
            })

, но иногда это не возвращает правильную высоту большую часть времени для Араби c язык. я добавил дополнительную высоту даже больше чем 100, но все еще не работает для некоторого результата.

Я беру данные API и создаю html файл и открываю его в Safari. Его работа в Safari работает нормально.

Примечание: он работает в Safari после добавления атрибута <meta charset="UTF-8"> в html. это происходит без этого атрибута API формы.

enter image description here

...