【问题标题】:Scrolling not working on WKWebView on iOS 13 beta在 iOS 13 beta 中的 WKWebView 中滚动不起作用
【发布时间】:2019-12-25 15:20:43
【问题描述】:

我在 WKWebView 中加载自定义 HTML,在视口中设置属性 width=device-width。这在 iOS 12 中完美运行,但在使用 iOS 13(beta 7)时出现滚动问题。

特别是在使用width=device-width时,无法滚动webview,所以部分内容是不可见的。只有当用户捏住缩放时才可能这样做,然后神奇地开始可以滚动(水平和垂直)。

我在文档中没有找到任何关于 iOS 13 中 WKWebView(甚至滚动视图)更改的内容可以证明这一点。我错过了什么吗?或者这可能是 iOS 13 / Xcode 11 的错误?

【问题讨论】:

  • 你为 height = device-height 设置了什么?
  • @Vinodh 没有设置高度

标签: ios scrollview wkwebview ios13 xcode11


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    就我而言,在阅读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)
      }
    

    也许会有所帮助。

    【讨论】:

    • 谢谢,明星一号为我工作,但身体一号没有。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-28
    • 1970-01-01
    • 2018-07-21
    • 1970-01-01
    • 2021-10-27
    • 1970-01-01
    相关资源
    最近更新 更多