mik*_*a88 5 webkit uiwebview webview swiftui
webView我想在新的 SwiftUI 框架内加载一个。我怎样才能做到这一点?
struct SubmissionFlowFrame: View {
var body: some View {
// I want to insert the iframe here
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以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)
}
}
Run Code Online (Sandbox Code Playgroud)
然后像普通的 swiftUI 一样使用它,View如下所示:
struct ContentView : View {
var body: some View {
WebView()
}
}
Run Code Online (Sandbox Code Playgroud)
并且不要忘记导入UIKit依赖项,例如本例:
import WebKit
Run Code Online (Sandbox Code Playgroud)
嗯,目前没有直接的方法可用。
但你可以用UIViewRepresentable它来包裹视图。
像这样:
struct ContentView : UIViewRepresentable {
func makeUIView(context: Context) -> WKWebView {
let webView = WKWebView()
let request = URLRequest(url: URL(string: "https://www.apple.com")!)
webView.load(request)
return webView
}
func updateUIView(_ uiView: WKWebView, context: Context) { }
}
#if DEBUG
struct ContentView_Previews : PreviewProvider {
static var previews: some View {
ContentView()
}
}
#endif
Run Code Online (Sandbox Code Playgroud)
别忘了import WebKit。
| 归档时间: |
|
| 查看次数: |
3818 次 |
| 最近记录: |