iOS 13测试版上WKWebView无法滚动

4

我在WKWebView中加载自定义HTML,将视口中的属性width=device-width设置为适配设备宽度。这在iOS 12中完美运作,但在iOS 13(beta 7)中滚动时出现问题。

特别是当使用width=device-width时,无法滚动Web视图,因此部分内容不可见。只有当用户捏合缩放时,才会神奇地开始可以水平和垂直滚动。

我在文档中没有找到关于WKWebView(甚至是scrollview)在iOS 13中发生变化的任何信息,这可能是我漏掉了什么?或者这是iOS 13/Xcode 11的一个bug吗?


你为height设置的是device-height吗? - Vinodh
@Vinodh, 没有设置高度。 - papafe
2个回答

4
我也遇到了这个问题,因为在body的样式中添加了"overflow: hidden"。我删除了"overflow: hidden",问题就解决了。

2

在我的情况下,阅读完将CSS插入已加载的HTML中的UIWebView / WKWebView之后,我尝试了以下方法:

最初的回答如下:

 func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    insertCSSString(into: webView)
  }

 func insertCSSString(into webView: WKWebView) {
      let cssString = "body { overflow: scroll !important }"
      let jsString = "var style = document.createElement('style'); style.innerHTML = '\(cssString)'; document.head.appendChild(style);"
      webView.evaluateJavaScript(jsString, completionHandler: nil)
  }

最初的回答:
或者是这样:
func insertCSSString(into webView: WKWebView) {
      let jsString = "document.querySelectorAll('*[style]').forEach(el => el.style.overflow = 'scroll');"
    webView.evaluateJavaScript(jsString, completionHandler: nil)
  }

"最初的回答"也许会有所帮助。

谢谢,星号那个对我有用,但正文那个不行。 - Ashkan Ghodrat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接