This commit is contained in:
Suresh, Kamlesh 2020-08-24 22:14:05 -04:00
parent db851b00a9
commit d2f334067a

View File

@ -129,32 +129,30 @@ extension WebView : WKUIDelegate {
return return
} }
/* /*
//TODO: Check and remove the comment //TODO: Check and remove the comment
was using "document.readyState" to check the state, 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". 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.readyState", completionHandler: { (complete, error) in if complete == nil {
if complete == nil { return
return }
} webView.evaluateJavaScript("document.body.scrollHeight", completionHandler: { [weak self] (result, error) in
webView.evaluateJavaScript("document.body.scrollHeight", completionHandler: { [weak self] (result, error) in guard let self = self else {
guard let self = self else { return
return }
} let scrollHeight = self.webView?.scrollView.contentSize.height ?? 44.0
let scrollHeight = self.webView?.scrollView.contentSize.height ?? 44.0 if let height = result as? CGFloat,
if let height = result as? CGFloat, height < scrollHeight {
height < scrollHeight { self.webViewHeight?.constant = height
self.webViewHeight?.constant = height } else {
} else { //if failed to get height from javascript, using scrollview.contensize's height
//if failed to get height from javascript, using scrollview.contensize's height self.webViewHeight?.constant = scrollHeight
self.webViewHeight?.constant = scrollHeight }
} self.delegateObject?.moleculeDelegate?.moleculeLayoutUpdated(self)
self.delegateObject?.moleculeDelegate?.moleculeLayoutUpdated(self) })
}) })
})
}
} }