From db851b00a9106c2a5ec1011d02d34ca0d6392be8 Mon Sep 17 00:00:00 2001 From: "Suresh, Kamlesh" Date: Mon, 24 Aug 2020 22:09:03 -0400 Subject: [PATCH] fiix --- MVMCoreUI/Atomic/Atoms/Views/WebView.swift | 32 ++++++++++++++-------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/MVMCoreUI/Atomic/Atoms/Views/WebView.swift b/MVMCoreUI/Atomic/Atoms/Views/WebView.swift index b1696a1d..374f0497 100644 --- a/MVMCoreUI/Atomic/Atoms/Views/WebView.swift +++ b/MVMCoreUI/Atomic/Atoms/Views/WebView.swift @@ -128,23 +128,31 @@ extension WebView : WKUIDelegate { if !dynamicHeight { 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 */ if !webView.isLoading { - webView.evaluateJavaScript("document.body.scrollHeight", completionHandler: { [weak self] (result, error) in - guard let self = self else { + webView.evaluateJavaScript("document.readyState", completionHandler: { (complete, error) in + if complete == nil { return } - let scrollHeight = self.webView?.scrollView.contentSize.height ?? 44.0 - if let height = result as? CGFloat, - height < scrollHeight { - self.webViewHeight?.constant = height - } else { - //if failed to get height from javascript, using scrollview.contensize's height - self.webViewHeight?.constant = scrollHeight - } - self.delegateObject?.moleculeDelegate?.moleculeLayoutUpdated(self) + webView.evaluateJavaScript("document.body.scrollHeight", completionHandler: { [weak self] (result, error) in + guard let self = self else { + return + } + let scrollHeight = self.webView?.scrollView.contentSize.height ?? 44.0 + if let height = result as? CGFloat, + height < scrollHeight { + self.webViewHeight?.constant = height + } else { + //if failed to get height from javascript, using scrollview.contensize's height + self.webViewHeight?.constant = scrollHeight + } + self.delegateObject?.moleculeDelegate?.moleculeLayoutUpdated(self) + }) }) } }