Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

143
Visualizações
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 à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda