获取 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 的“loadHTMLString”高度宽度问题
iOS 13 beta 中 WKWebView 的内在内容大小问题