开发SwiftUI WebView应用时报错:Cannot find 'SwiftUIWebView' in scope
报错「Cannot find 'SwiftUIWebView' in scope」解决方案
- 报错根因:SwiftUI 官方没有内置名为
SwiftUIWebView的组件,你需要自行封装该组件才能调用。
具体修复步骤
- 先在当前代码文件顶部导入
WebKit框架,然后添加SwiftUIWebView自定义组件的实现代码,完整代码参考如下:
import SwiftUI import WebKit // 自定义SwiftUIWebView组件 struct SwiftUIWebView: UIViewRepresentable { let url: URL? func makeUIView(context: Context) -> WKWebView { WKWebView() } func updateUIView(_ uiView: WKWebView, context: Context) { guard let loadUrl = url else { return } uiView.load(URLRequest(url: loadUrl)) } } // 原有业务代码 struct ContentView: View { var body: some View { NavigationView { SwiftUIWebView(url: URL(string: "https://www.apple.com/")) .navigationTitle("WebView") } } } // 修正原有代码的拼写错误:ContenView → ContentView struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } }
- 额外修正项:你原有代码中的预览结构体名称少写了字符
t,修改为ContentView_Previews即可避免后续出现预览相关报错。 - 可选高版本适配方案:如果你的项目最低适配iOS 16+,可以直接使用SwiftUI官方提供的
WebView组件,无需自行封装,调用示例:
// 导入WebKit后直接调用 WebView(request: URLRequest(url: URL(string: "https://www.apple.com/")!))
内容的提问来源于stack exchange,提问作者Joas Henrique
相关产品推荐
相关产品推荐

