SwiftUIWebView不遵循UIViewRepresentable协议报错如何解决
错误原因与修复方案
你代码中存在两处拼写错误,未匹配UIViewRepresentable协议的必填方法签名,因此触发协议不兼容报错:
makeUIView方法的参数名错误:协议要求第一个参数名为小写的context,你的代码中写成了大写开头的Context- 协议方法名拼写错误:你将必填的
updateUIView方法名中的UI顺序写反,错误写为updateIUView
修正后完整代码
import SwiftUI import WebKit struct SwiftUIWebView: UIViewRepresentable { let url: URL? func makeUIView(context: Context) -> WKWebView { let prefs = WKWebpagePreferences() prefs.allowsContentJavaScript=true let config = WKWebViewConfiguration() config.defaultWebpagePreferences = prefs return WKWebView( frame: .zero, configuration: config ) } func updateUIView(_ uiView: WKWebView, context: Context) { guard let myURL = url else { return } let request = URLRequest(url: myURL) uiView.load(request) } }
修复后重新编译即可消除报错。
内容的提问来源于stack exchange,提问作者Anh
相关产品推荐
相关产品推荐

