我想在新的SwiftUI框架中加载webView
。我该怎么办?
struct SubmissionFlowFrame: View {
var body: some View {
// I want to insert the iframe here
}
}
答案 0 :(得分:1)
您可以通过遵守UIView
来使用任何UIViewRepresentable
并实现所需的方法,如下所示:
struct WebView: UIViewRepresentable {
func makeUIView(context: Context) -> WKWebView {
WKWebView(frame: .zero)
}
func updateUIView(_ view: WKWebView, context: UIViewRepresentableContext<WebView>) {
let request = URLRequest(url: URL(string: "https://google.com")!)
view.load(request)
}
}
,然后像正常的swiftUI View
这样使用它:
struct ContentView : View {
var body: some View {
WebView()
}
}
也不要忘记像这种情况那样导入UIKit
依赖项:
import WebKit
答案 1 :(得分:1)
grade
答案 2 :(得分:0)
好吧,目前尚无直接方法。
但是您可以为此使用UIViewRepresentable
并用它包装视图。
像这样:
struct ContentView : UIViewRepresentable {
func makeUIView(context: Context) -> WKWebView {
return WKWebView()
}
func updateUIView(_ uiView: WKWebView, context: Context) {
uiView.load(URLRequest(url: URL(string: "https://www.apple.com")!))
}
}
#if DEBUG
struct ContentView_Previews : PreviewProvider {
static var previews: some View {
ContentView()
}
}
#endif
别忘了import WebKit
。
答案 3 :(得分:0)
您可以使用webView
将UIViewRepresentable
包裹在SwiftUI中。
import SwiftUI
import WebKit
struct ContentView: View {
var body: some View {
WebView()
}
}
struct WebView: UIViewRepresentable {
func makeUIView(context: Context) -> WKWebView {
return WKWebView()
}
func updateUIView(_ webView: WKWebView, context: Context) {
let request = URLRequest(url: URL(string: "https://www.apple.com")!)
webView.load(request)
}
}