【发布时间】:2022-08-16 12:13:18
【问题描述】:
在使用SwiftUI 时,WKWebView 在UIViewRepresentable 包装器中实现时会成功加载。但是Xcode Version 13.4.1的Debug区出现了以下日志:
[ViewportSizing] maximumViewportInset cannot be larger than frame
[ViewportSizing] minimumViewportInset cannot be larger than frame
如何解决这些日志?
可以使用以下最小可重现示例来重现这些日志:
WebApp.swift
import SwiftUI
import WebKit
@main
struct WebApp: App {
var body: some Scene {
WindowGroup {
WebView()
}
}
}
struct WebView: UIViewRepresentable {
func makeUIView(context: Context) -> some UIView {
let webView = WKWebView()
webView.load(URLRequest(url: URL(string: \"https://www.google.com\")!))
return webView
}
func updateUIView(_ uiView: UIViewType, context: Context) {}
}
进步:
这些日志似乎来源于以下 WebKit 浏览器引擎源代码:
- 最大视口插入:https://github.com/WebKit/webkit/blob/main/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm#L1623
- 最小视口插入:https://github.com/WebKit/webkit/blob/main/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm#L1638
尽管注释掉了 webView.load(URLRequest(url: URL(string: \"https://www.google.com\")!)) 行,但这些日志仍然存在。因此,可以断定这不是网站问题。