Don't reset the windowScrollY position on every page render and don't set it if JavaScript returns it corrupted. Issue #1883
This commit is contained in:
parent
27b1443def
commit
22b9e7b54b
|
@ -375,8 +375,12 @@ extension WebViewController: UIScrollViewDelegate {
|
||||||
}
|
}
|
||||||
|
|
||||||
@objc func scrollPositionDidChange() {
|
@objc func scrollPositionDidChange() {
|
||||||
webView?.evaluateJavaScript("window.scrollY") { (scrollY, _) in
|
webView?.evaluateJavaScript("window.scrollY") { (scrollY, error) in
|
||||||
self.windowScrollY = scrollY as? Int ?? 0
|
guard error == nil else { return }
|
||||||
|
let javascriptScrollY = scrollY as? Int ?? 0
|
||||||
|
// I don't know why this value gets returned sometimes, but it is in error
|
||||||
|
guard javascriptScrollY != 33554432 else { return }
|
||||||
|
self.windowScrollY = javascriptScrollY
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -498,8 +502,6 @@ private extension WebViewController {
|
||||||
render = "render(\(json), \(windowScrollY));"
|
render = "render(\(json), \(windowScrollY));"
|
||||||
}
|
}
|
||||||
|
|
||||||
windowScrollY = 0
|
|
||||||
|
|
||||||
webView.evaluateJavaScript(render)
|
webView.evaluateJavaScript(render)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue