Merge branch 'bugfix/webView_scrollView_contentSize' into 'release/8_0_0'

webView.scrollView.contentSize

See merge request BPHV_MIPS/mvm_core_ui!571
This commit is contained in:
Hedden, Kyle Matthew 2020-08-24 22:17:01 -04:00
commit 63f43d4b3b

View File

@ -128,24 +128,31 @@ extension WebView : WKUIDelegate {
if !dynamicHeight { if !dynamicHeight {
return return
} }
/* was using "document.readyState" to check the state, while evaluateJavaScript "document.readyState",only works when webview contains userscrpt.otherwise, it would return WKErrorDomain Code=4 "A JavaScript exception occurred". /*
//TODO: Check and remove the comment
was using "document.readyState" to check the state,
while evaluateJavaScript "document.readyState",only works when webview contains userscrpt.otherwise, it would return WKErrorDomain Code=4 "A JavaScript exception occurred".
so webView.isLoading to check load finished state so webView.isLoading to check load finished state
*/ */
if !webView.isLoading { webView.evaluateJavaScript("document.readyState", completionHandler: { (complete, error) in
webView.evaluateJavaScript("document.body.scrollHeight", completionHandler: { [weak self] (result, error) in if complete == nil {
guard let self = self else { return
return }
} webView.evaluateJavaScript("document.body.scrollHeight", completionHandler: { [weak self] (result, error) in
if let height = result as? CGFloat { guard let self = self else {
self.webViewHeight?.constant = height return
} else { }
//if failed to get height from javascript, using scrollview.contensize's height let scrollHeight = self.webView?.scrollView.contentSize.height ?? 44.0
let scrollHeight = self.webView?.scrollView.contentSize.height if let height = result as? CGFloat,
self.webViewHeight?.constant = scrollHeight ?? 44 height < scrollHeight {
} self.webViewHeight?.constant = height
self.delegateObject?.moleculeDelegate?.moleculeLayoutUpdated(self) } else {
}) //if failed to get height from javascript, using scrollview.contensize's height
} self.webViewHeight?.constant = scrollHeight
}
self.delegateObject?.moleculeDelegate?.moleculeLayoutUpdated(self)
})
})
} }