For completeness, I created the simplest app possible that illustrates this:
//
// ContentView.swift
// TestWKWebView
//
//
import SwiftUI
import WebKit
struct ContentView: View {
var body: some View {
SVGWebView()
}
}
struct SVGWebView: UIViewRepresentable {
let svg: String = "<html><head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" /><title>Hello ...</title></head><body><p>Greetings ...</p></body></html>"
func makeUIView(context: Context) -> WKWebView {
return WKWebView(frame: CGRect.zero)
}
func updateUIView(_ webView: WKWebView, context: Context) {
webView.loadHTMLString(svg, baseURL: nil)
}
}
#Preview {
ContentView()
}
This fails too, as I suspected, but worth doing anyway. It works fine on ios 17.5 or earlier.