WKWebView滚动视图比webView更宽

问题描述 投票:0回答:1

我遇到一个问题,我的网页在页面右侧添加纯白色空间,导致水平滚动,但仅在 iOS 中的 WKWebView 中加载时才会出现。在 iOS 中的 Safari 中加载时不会

网页响应灵敏:

@media screen and (max-width: 960px) {
    /* Adjust the breakpoint (768px) based on your needs */
    
    .tile-container {
        flex-direction: column;
        align-items: center;
        max-width: 100%;
      }
    
      .super-tile {
        margin-bottom: 20px;
      }
  
    .arrow {
      display: none;
    }
  }

它有元标签:

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

WKWebView 已配置:

override func viewDidLoad() {
    super.viewDidLoad()
    
    webView.configuration.userContentController.add(self, name: "jsHandler")
    webView.configuration.userContentController.add(self, name: "errorHandler")
    webView.configuration.userContentController.add(self, name: "pickerHandler")
    webView.navigationDelegate = self
    webView.isInspectable = true
    webView.configuration.allowsInlineMediaPlayback = true
    webView.configuration.allowsPictureInPictureMediaPlayback = false
    
    webView.load(URLRequest(url: URL(string: "https://example.com")!))
}

没有元素报告比屏幕尺寸更宽。然而

document.documentElement.scrollWidth
报告 540(设备宽度 393):

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
        webView.evaluateJavaScript("document.documentElement.scrollWidth") { (result, error) in
            if let width = result as? CGFloat {
                print("HTML Content Width: \(width)")
            }
        }
    }

WKWebView 是从 Interface Builder 实例化的。与 https://nytimes.com 而不是所需的网页

没有同样的问题

这是在 iPhone 15 Pro 模拟器上运行的,因为我没有实体 iPhone 可以尝试。在物理 iPad 上或通过 Catalyst 运行没有问题

有什么想法吗?

ios iphone scrollview wkwebview
1个回答
0
投票

原来模拟器缓存了一个 CSS 文件,在更改宽度后将其保持为 540

操作员错误

© www.soinside.com 2019 - 2024. All rights reserved.