struct WebPageExample: View { var body: some View { Link("DevTechie", destination: URL(string: "https://www.devtechie.com")!) } }
import WebKit
struct SwiftUIWebView: UIViewRepresentable { typealias UIViewType = WKWebView func makeUIView(context: Context) -> WKWebView { } func updateUIView(_ uiView: WKWebView, context: Context) { } }
struct SwiftUIWebView: UIViewRepresentable { typealias UIViewType = WKWebView let webView: WKWebView init() { webView = WKWebView(frame: .zero) webView.load(URLRequest(url: URL(string: "https://www.devtechie.com")!)) } func makeUIView(context: Context) -> WKWebView { webView } func updateUIView(_ uiView: WKWebView, context: Context) { } }
struct WebPageExample: View { var body: some View { SwiftUIWebView() } }
final class SwiftUIWebViewModel: ObservableObject { @Published var urlString = "https://www.devtechie.com" let webView: WKWebView init() { webView = WKWebView(frame: .zero) } func loadUrl() { guard let url = URL(string: urlString) else { return } webView.load(URLRequest(url: url)) } }
struct SwiftUIWebView: UIViewRepresentable { typealias UIViewType = WKWebView let webView: WKWebView func makeUIView(context: Context) -> WKWebView { webView } func updateUIView(_ uiView: WKWebView, context: Context) { } }
struct WebPageExample: View { @StateObject private var model = SwiftUIWebViewModel() var body: some View { SwiftUIWebView(webView: model.webView) .onAppear { model.loadUrl() } } }
struct WebPageExample: View { @StateObject private var model = SwiftUIWebViewModel() var body: some View { VStack { SwiftUIWebView(webView: model.webView) HStack { TextField("Enter url", text: $model.urlString) .textFieldStyle(.roundedBorder) Button("Go") { model.loadUrl() } } .padding() } } }
func back() { webView.goBack() }func forward() { webView.goForward() }
struct WebPageExample: View { @StateObject private var model = SwiftUIWebViewModel() var body: some View { VStack { SwiftUIWebView(webView: model.webView) Group { HStack { TextField("Enter url", text: $model.urlString) .textFieldStyle(.roundedBorder) Button("Go") { model.loadUrl() } } HStack { Spacer() Button(action: { model.back() }) { Image(systemName: "arrow.backward") } Button(action: { model.forward() }) { Image(systemName: "arrow.forward") } } } .padding(.horizontal) .padding(.vertical, 5) } } }final class SwiftUIWebViewModel: ObservableObject { @Published var urlString = "https://www.devtechie.com" let webView: WKWebView init() { webView = WKWebView(frame: .zero) } func loadUrl() { guard let url = URL(string: urlString) else { return } webView.load(URLRequest(url: url)) } func back() { webView.goBack() } func forward() { webView.goForward() } }
With that we have reached the end of this article. Thank you once again for reading. Don’t forget to subscribe our weekly newsletter at