SwiftUIWKWebView

WKWebView 用作 macOS 环境的 NSViewRepresentable 和 UIKit 的 UIViewRepresentable

使用方法

不使用 ViewModel

在框架内加载网站,可以在网页内导航,但没有 ObservedObject

struct MyWebView: View {
    var body: some View {
        SwiftUIWKWebView(viewModel: .init(urlString: "https://apple.com")!)
    }
}

使用 ViewModel

扩展 WebViewModel,以便从 WKNavigationDelegate 获取更多操作

struct MyWebView: View {
    @ObservedObject var viewModel: WebViewModel
	
    var body: some View {
        SwiftUIWKWebView(viewModel: viewModel)
    }
}

struct MyWebView_Previews: PreviewProvider {
    static var previews: some View {
        MyWebView(viewModel: .init(urlString: "https://twitter.com/jkmazur")!)
    }
}