Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

137
Vistas
Cómo restablecer WKWebView cuando se encuentra en mal estado sin recargar el programa

Tengo una aplicación web híbrida que usa Objective C y Javascript.
El código javascript activa una llamada a wkwebkit en iOS que extrae una entrada de archivo zip (imagen) utilizando el paquete ZipZap.
Los datos de la imagen en el archivo zip se representan como una mancha y luego se muestran en la pantalla.

El código para extraer una entrada de archivo zip en un blob (binario -> base64 ascii -> binario -> blob) utiliza los siguientes pasos:

  • La entrada se extrae como tipo Objective C NSData y luego se codifica a través de base64, de binario a cadena ASCII.
  • La cadena ASCII base64 codificada luego se decodifica en una cadena binaria decodificada usando la función atob().
  • La cadena binaria decodificada luego se representa como Uint8Array en un byteArray.
  • Finalmente, Uint8Array byteArray crea un nuevo Blob.

La razón por la que estoy usando la conversión base64 es para crear una cadena que podría enviarse desde Objective C al javascript.

El código se ejecuta en un bucle en la lista de entradas zip.
Funciona bien en las entradas de la lista, pero en algún momento recibo un mensaje de error de atob(): "carácter no válido para base64".
En este estado, el valor de la cadena ASCII base64 codificada muestra "(nulo)".
Desde este punto, todas las entradas del archivo zip devuelven el mismo error y la cadena ASCII base64 codificada muestra "(nulo)".
Entonces, la única forma de recuperarse es recargar el programa que reinicializa WKWebView.

Cuando ejecuto una versión pura de la aplicación web en un dispositivo iOS (por ejemplo, no híbrido, a través del navegador, por ejemplo, safari), el programa también falla después de un tiempo con un error similar (el búfer de blob muestra "nulo"), así que no No creo que esto sea un problema en el lado del código iOS Objective C.

Como referencia, el programa funciona bien en otros sistemas operativos, por ejemplo, aplicación híbrida en Android, aplicación web pura en Android/Linux/Windows/Mac en el navegador.

A partir de esto, sospecho que WebView en iOS se encuentra en mal estado.

Idealmente, quiero resolver el problema para que no ocurra en primer lugar.
Hasta ahora no he encontrado cómo hacerlo, así que estoy buscando una forma de recuperarme sin tener que volver a cargar el programa.
¿Hay alguna forma de restablecer WKWebView sin tener que volver a cargar el programa?

Gracias

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda