WizWebview – evaluateJavaScript(“document.height”)返回nil

在我的应用程序中,我需要获取WKWebView网页的高度。 所以我使用下面的代码。

 webView.evaluateJavaScript(("document.height"), completionHandler: { contentHeight,error in print(contentHeight) }) 

直到iOS 9,这正确返回网页高度。 但在iOS 10中, contentHeight始终nil

我已经设定了

 webView.scrollView.scrollEnabled = false 

而Web视图在UITableViewCell

webViewUITableViewCell的高度是可变的。 在Web视图上有一个顶部和底部约束来适应单元格。

当我获得网页高度时,我希望它能够反映在单元格的高度。

尝试这个:

 let javascriptString = "" + "var body = document.body;" + "var html = document.documentElement;" + "Math.max(" + " body.scrollHeight," + " body.offsetHeight," + " html.clientHeight," + " html.offsetHeight" + ");" webView.evaluateJavaScript(javascriptString) { (result, error) in if error == nil { if let result = result, let height = JSON(result).int { self.htmlContentHeight = CGFloat(height) self.resetContentCell() } } } 

PS。 WKWebiew呈现问题: WKWebView无法在iOS 10中正确呈现

你可以尝试使用

 webView.evaluateJavaScript(("document.body.offsetHeight"), completionHandler:^(id _Nullable result, NSError * _Nullable error) { NSLog(@">>>%@",result); })