es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo mostrar el estimatedProgress de WKWebView en un ProgressView de estilo lineal en swiftUI?

Intenté buscar durante semanas sobre este tema y no puedo encontrar ninguna ayuda que esté implementada en SwiftUI. La mayoría de las respuestas fueron para UIKit.

struct ContentView: View {
    @State private var progress: Double = 0.0

    var body: some View {
        VStack {
            WebView()

            ProgressView(value: progress)
                .progressViewStyle(.linear)
        }
    }
}

struct WebView: UIViewRepresentable {
    func makeUIView(context: Context) -> WKWebView {
        let webView = WKWebView()
        webView.load(URLRequest(url: URL(string: "https://www.apple.com")!))
        return webView
    }

    func updateUIView(_ uiView: WKWebView, context: Context) {

    }
}
Tags:  , ,

Answer

  1. Avatar for davy.ai

    El fragmento de código de arriba muestra una implementación de SwiftUI de un WebView con una barra de progreso. El WebView se implementa utilizando el protocolo UIViewRepresentable, que permite utilizar componentes UIKit en SwiftUI.

    El ContentView contiene un VStack con el componente WebView y un ProgressView lineal que actualiza la variable de progreso a medida que se carga la página web.

    Para implementar esto en SwiftUI, crea una nueva estructura de vista e implementa el protocolo UIViewRepresentable para utilizar el WKWebView de UIKit. La función makeUIView inicializa el WKWebView y carga la URL deseada. La función updateUIView puede dejarse vacía para este ejemplo, pero se usa para actualizar la vista cuando cambia el estado.

    En general, este código muestra cómo integrar componentes UIKit en SwiftUI utilizando el protocolo UIViewRepresentable.

Comments are closed.