获取 WKWebView 的内容高度不正确

Posted

技术标签:

【中文标题】获取 WKWebView 的内容高度不正确【英文标题】:Get content Height of WKWebView incorrect 【发布时间】:2018-06-01 04:38:55 【问题描述】:

我正面临通过 Whooshkaa 播放列表链接 https://player.whooshkaa.com/player/playlist/show/2321?sharing=true 获取 WebView 内容高度的问题。

自定义 View 中的 WKWebView,加载 WebView 成功后我将重新计算框架视图。

我尝试了 3 种方法:

当 webView contentSize 像这样改变时创建一个观察者Example。 像这样评估javascript
  func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) 

    webView.evaluateJavaScript("document.body.offsetHeight")  [weak self] (height, _) in
        guard let height = height as? CGFloat else  return 
        // Still 200
    

--->但是所有的情况都只返回200px的offsetHeight。 如您所见,它仍然缺少下面的播放列表内容。

还有其他方法/技巧可以让我正确获取 offsetHeight 吗?

【问题讨论】:

见这个例如:***.com/questions/27515236/… 试试这个***.com/questions/50578817/… 200px 似乎是正确的数字,您确定要更新 webview 高度吗? @ymutlu 这不正确,请看一下我发布的图片,并打开链接。你可以看到它们之间的不匹配。 我已添加图片作为答案,请检查。 【参考方案1】:

200px 是您分享的页面的最小高度。您可能需要检查您的 webview 框架。

不要将 CGRect.zero 用于初始帧,这可能会导致页面加载错误。我添加了简单的代码示例,它可以正常工作。

【讨论】:

您的回答好像我必须减去 webView 框架?我用 WKWebView(frame: CGRect.zero) 创建了 WebView。我的目标是加载完成后需要根据 webView 的内容大小设置 webView 的框架。

以上是关于获取 WKWebView 的内容高度不正确的主要内容,如果未能解决你的问题,请参考以下文章

无法获得 wkWebView 的正确高度?

iOS 野路子获取WKWebView内容高度做H5原生连接

WKWebView 的“loadHTMLString”高度宽度问题

iOS 13 beta 中 WKWebView 的内在内容大小问题

iOS为带有嵌入推文的html字符串计算正确的WKWebview高度

iOS获取WKWebView的高度