We have a requirement to disable scrolling of web view and show the complete web view content in a table view cell, and only table view should be scrolling not the web view
Tried the below approach, but it's not giving the correct content size of the web view if we disable scrolling of the WKWebView.
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
self.updateWebView(for: webView)
}
func updateWebView(for webView: WKWebView) {
let scaleFactor: CGFloat = UIDevice.current.userInterfaceIdiom == .pad ? 1.0 : 0.70
let scaleJavascript = "var style = document.createElement(\"style\"); document.head.appendChild(style); style.innerHTML = \"html{-webkit-text-size-adjust: none; font-size: 25px; word-wrap: break-word;}\";var viewPortTag=document.createElement('meta');viewPortTag.id=\"viewport\";viewPortTag.name = \"viewport\";viewPortTag.content = \"width=device-width; user-scalable=0.0; initial-scale=\(scaleFactor); minimum-scale=\(scaleFactor); maximum-scale=\(scaleFactor); shrink-to-fit=no;\";document.getElementsByTagName('head')[0].appendChild(viewPortTag);"
webView.evaluateJavaScript(scaleJavascript, completionHandler: { [weak self] (_, _) in
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
self?.height = webView.scrollView.contentSize.height
self?.onUpdate?(nil)
}
})
}
Any help or lead is highly appreciated.