滚动无法在iOS 13 beta上的WKWebView上运行

时间:2019-08-20 11:55:21

标签: ios scrollview wkwebview ios13 xcode11

我正在WKWebView中加载自定义HTML,并在视口中设置属性width=device-width。在iOS 12上可以完美运行,但是在使用iOS 13(测试版7)滚动时会遇到问题。

尤其是,当使用width=device-width时,无法滚动Web视图,因此部分内容不可见。只有在用户捏住缩放后才可以这样做,然后神奇地开始可以滚动(水平和垂直)。

我在文档中没有找到有关iOS 13中WKWebView(甚至滚动视图)更改的任何信息,可以证明这一点。我想念什么吗?还是这是iOS 13 / Xcode 11的错误?

2 个答案:

答案 0 :(得分:4)

我也遇到了这个问题,因为在主体的样式中添加了“溢出:隐藏”。我删除了“溢出:隐藏”,仅此而已。

答案 1 :(得分:0)

就我而言,在阅读Insert CSS into loaded HTML in 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)
  }

也许有帮助。