WebView Nativo en SwiftUI

Nueva API de webView en SwiftUI

A partir de iOS 18.4 Apple introduce una nueva API para la visualización de contenido web de manera nativa en SwiftUI. 

Con este nuevo enfoque nativo, dejamos de depender de la implementación de WKWebView de UIKit. Que parecía ser una solución a corto plazo.

La nueva API esta adaptada al entorno visual y reactivo propio de SwiftUI y podemos controlar el estado de la carga del contenido web así como diversos parámetros de visualización utilizando modificadores como:

  • webViewLinkPreviews(_  :  ) Permite habilitar/deshabilitar los enlaces de las vistas previas
  • webViewContentBackground(_ : ) Muestra u oculta el fondo de la vista web
  • webViewMagnificationGestures(_ : ) Activa la función de pellizcar para hacer zoom
  • webViewBackForwarNavigationGestures(_ : ) Permite, mediante gesto de deslizamiento, la navegación hacia delante y hacia atrás.
  • webViewScrollPosition(_ : ) Conecta el valor de desplazamiento a una estructura ScrollPosition

La API tiene dos inicializadores:

				
					import SwiftUI
import WebKit

struct WebViewDemo: View {
		private let url = URL(string: "https://ypgcode.es")!
		
    var body: some View {
        WebView(url: self.url)
    }
}
				
			

Si es necesario un control más granular entonces puedes utilizar el otro inicializador de esta forma:

				
					import SwiftUI
import WebKit

struct WebPageDemo: View {
    @State private var page = WebPage()
    private let url = URL(string: "https://ypgcode.es")!
    
    var body: some View {
        WebView(page)
            .onAppear {
                page.load(URLRequest(url: self.url))
            }
    }
}
				
			

En este ejemplo podemos ver que utilizando  WebPage() podemos ajustar dinámicamente la carga de contenido.

De esta forma puedes añadir solicitudes personalizadas, actualizar el contenido u observar el estado.

Es importante recordar que esta nueva API solo está disponible a partir de iOS 18.4+. Las versiones anteriores deberán utilizar el antiguo enfoque con WKWebView de IUKit.

Conclusiones

En este árticulo hemos visto la nueva API para la exposición de contenido web dinámico habilitada a partir de iOS 18.4 +. Con este nuevo enfoque nativo, orientado a SwiftUI,  es posible prescindir de la creación de un contenedor IUKit para la representación de contenido web en nuestras aplicaciones.

Además podemos ajustar varios parámetros, utilizando modificadores de SwiftUI, para un control más fino de la representación de la vista webView. 

Si le ha gustado este contenido no dude en escribirme en los comentarios. Que tengan un excelente día!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio