[英]Type 'SwiftUIWebView' does not conform to protocol'NSViewRepresentable
我正在關注本教程,了解如何在 SwiftUI 中創建 WebView,除了我正在為 macOS 應用程序而不是 IOS 制作它。
我將 UIViewRepresentable 切換為 NSViewRepresentable 並收到此錯誤: Type 'SwiftUIWebView' does not conform to protocol'NSViewRepresentable'
import SwiftUI
import WebKit
import AppKit
struct SwiftUIWebView: NSViewRepresentable {
let url: URL?
func makeUIView(context: Context) -> WKWebView {
let prefs = WKWebpagePreferences()
prefs.allowsContentJavaScript = true
let config = WKWebViewConfiguration()
config.defaultWebpagePreferences = prefs
let webView = 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)
}
}
您還需要使用makeNSView
協議委托而不是makeUIView
。
struct SwiftUIWebView: NSViewRepresentable {
let url: URL?
func makeNSView(context: Context) -> WKWebView {
let prefs = WKWebpagePreferences()
prefs.allowsContentJavaScript = true
let config = WKWebViewConfiguration()
config.defaultWebpagePreferences = prefs
let webView = WKWebView(frame: .zero, configuration: config)
return webView
}
func updateNSView(_ nsView: WKWebView, context: Context) {
guard let myURL = url else {
return
}
let request = URLRequest(url: myURL)
nsView.load(request)
}
}
請查看文檔
方法是makeNSView
和updateNSView
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.