Saltar al contenido

WKWebView no carga la página web: muestra la pantalla en blanco en Swift

Si encuentras algún detalle que no entiendes puedes dejarnos un comentario y trataremos de ayudarte lo mas rápido que podamos.

Solución:

He encontrado la solución. El problema lo causaba el escudo web de AVG AntiVirus. Por algún motivo, AVG webshield trata todas las comunicaciones de red desde el simulador como fraudulentas. La siguiente captura de pantalla muestra la aplicación de safari ejecutándose en el simulador. Dice que www.apple.com no es seguro ni ningún otro sitio web.

Captura de pantalla de Safari

La siguiente captura de pantalla es de system.log y muestra errores con webkit.

Registro del sistema

Puede replicar este problema instalando el antivirus AVG y activando el escudo web. WKWebview en su aplicación (en el simulador) no cargaría nada.

Aunque no entiendo por qué no funcionaba en un dispositivo real. Podría haber sido otro problema con el dispositivo. También eliminé la carpeta de datos derivados, la aplicación real y reinicié el dispositivo.

Gracias a todos por las respuestas y la ayuda.

¿Estás construyendo una aplicación para Mac?

Si está creando una aplicación para Mac, asegúrese de activar App SandboxSOBRE en su objetivo y marque Networks Conexiones salientes.

ingrese la descripción de la imagen aquí


Actualización: si prefiere el camino largo, agregue lo siguiente a YourAppName.entitlements

com.apple.security.app-sandbox

com.apple.security.network.client

La forma correcta con diseño automático y constante 10 para todos los dispositivos:

import UIKit
import WebKit

class ViewController: UIViewController, WKUIDelegate 

let webView = WKWebView()

override func viewDidLoad() 
    super.viewDidLoad()
    setupWebView()


fileprivate func setupWebView() 
    webView.uiDelegate = self
    webView.translatesAutoresizingMaskIntoConstraints = false
    DispatchQueue.main.async 
        guard let url = URL(string: "http://www.apple.com") else  return 
        self.webView.load(URLRequest(url: url))
    
    view.addSubview(webView)
    webView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 10).isActive = true
    webView.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor, constant: 10).isActive = true
    webView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor, constant: -10).isActive = true
    webView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor, constant: 10).isActive = true

en info.plist:

NSAppTransportSecurity

    NSAllowsArbitraryLoads
    

Calificaciones y reseñas

Si guardas alguna sospecha y disposición de aclarar nuestro escrito puedes realizar un exégesis y con gusto lo interpretaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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