From f67b8a644d93ff25490a5667843c5793c0134f67 Mon Sep 17 00:00:00 2001 From: "Suresh, Kamlesh" Date: Tue, 25 Aug 2020 18:00:07 -0400 Subject: [PATCH 1/3] fix --- MVMCoreUI/Atomic/Atoms/Views/WebView.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MVMCoreUI/Atomic/Atoms/Views/WebView.swift b/MVMCoreUI/Atomic/Atoms/Views/WebView.swift index 68c3b5fc..533725ff 100644 --- a/MVMCoreUI/Atomic/Atoms/Views/WebView.swift +++ b/MVMCoreUI/Atomic/Atoms/Views/WebView.swift @@ -142,7 +142,7 @@ extension WebView : WKUIDelegate { guard let self = self else { return } - let scrollHeight = self.webView?.scrollView.contentSize.height ?? 44.0 + let scrollHeight = webView.scrollView.contentSize.height if let height = result as? CGFloat, height < scrollHeight { self.webViewHeight?.constant = height From f3c3ba9799ee4014d33fa916bd4962688b4d28b8 Mon Sep 17 00:00:00 2001 From: "Suresh, Kamlesh" Date: Tue, 25 Aug 2020 19:32:48 -0400 Subject: [PATCH 2/3] remove code --- MVMCoreUI/Atomic/Atoms/Views/WebView.swift | 39 +++++++++++----------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/MVMCoreUI/Atomic/Atoms/Views/WebView.swift b/MVMCoreUI/Atomic/Atoms/Views/WebView.swift index 533725ff..54805815 100644 --- a/MVMCoreUI/Atomic/Atoms/Views/WebView.swift +++ b/MVMCoreUI/Atomic/Atoms/Views/WebView.swift @@ -134,25 +134,26 @@ extension WebView : WKUIDelegate { 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 */ - webView.evaluateJavaScript("document.readyState", completionHandler: { (complete, error) in - if complete == nil { - return - } - webView.evaluateJavaScript("document.body.scrollHeight", completionHandler: { [weak self] (result, error) in - guard let self = self else { - return - } - let scrollHeight = webView.scrollView.contentSize.height - 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) - }) - }) + if !webView.isLoading { + webView.evaluateJavaScript("document.body.scrollHeight", completionHandler: { [weak self] (result, error) in + guard let self = self else { + return + } + MVMCoreDispatchUtility.performBlock(onMainThread: { [weak self] in + let scrollHeight = webView.scrollView.contentSize.height + guard let self = self else { + return + } + if let height = result as? CGFloat { + 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) + }) + }) + } } From dce1c5cdf2276c129e2fc222f659b0dfe2ddcf63 Mon Sep 17 00:00:00 2001 From: "Suresh, Kamlesh" Date: Tue, 25 Aug 2020 19:34:25 -0400 Subject: [PATCH 3/3] cleanup --- MVMCoreUI/Atomic/Atoms/Views/WebView.swift | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/MVMCoreUI/Atomic/Atoms/Views/WebView.swift b/MVMCoreUI/Atomic/Atoms/Views/WebView.swift index 54805815..3de42935 100644 --- a/MVMCoreUI/Atomic/Atoms/Views/WebView.swift +++ b/MVMCoreUI/Atomic/Atoms/Views/WebView.swift @@ -129,7 +129,6 @@ extension WebView : WKUIDelegate { return } /* - //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 @@ -140,17 +139,16 @@ extension WebView : WKUIDelegate { return } MVMCoreDispatchUtility.performBlock(onMainThread: { [weak self] in - let scrollHeight = webView.scrollView.contentSize.height guard let self = self else { return } - if let height = result as? CGFloat { - 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) + if let height = result as? CGFloat { + self.webViewHeight?.constant = height + } else { + //if failed to get height from javascript, using scrollview.contensize's height + self.webViewHeight?.constant = webView.scrollView.contentSize.height + } + self.delegateObject?.moleculeDelegate?.moleculeLayoutUpdated(self) }) }) }