Red de conocimiento informático - Problemas con los teléfonos móviles - WKWebView

WKWebView

Ambos están implementados sobre JavaScriptCore, un marco que proporciona un motor JavaScript en WebKit que Apple llama Nitro. Una de las razones por las que WKWebView es tan eficiente es que admite la tecnología JIT (Just In Time), algo que UIWebView no admite.

WKWebView - Descripción general de API

WKWebView - Gestión de cookies

El motivo de la pantalla blanca en WKWebView es que el proceso WebContent falla cuando WKWebView está ocupado en un proceso Esto puede suceder con grandes cantidades de memoria. WKWebView.URL pasará a ser cero y llamar al método de recarga para actualizarlo ya no tendrá ningún efecto.

Solución

a. Proxy WKNavigtionDelegate

Cuando el uso general de memoria de WKWebView es demasiado grande y la página está a punto de ponerse blanca, el sistema llamará al función de devolución de llamada anterior. Realizaremos una [recarga de webView] (cuando webView.URL aún no sea cero) para resolver el problema de la pantalla blanca. En algunas páginas con un alto consumo de memoria, la página actual puede actualizarse con frecuencia y el lado H5 también debe realizar los ajustes correspondientes.

b. Compruebe si webView.title está vacío

No todas las páginas H5 llamarán a la función de devolución de llamada anterior cuando aparezca una pantalla en blanco. Por ejemplo, cuando la cámara del sistema se muestra en una página H5 con un alto consumo de memoria, aparece una pantalla blanca al regresar a la página original después de tomar una foto (el proceso de tomar fotografías consume mucha memoria, lo que resulta en memoria insuficiente). pero no se llama a la función de devolución de llamada anterior. Otro fenómeno de la pantalla blanca de WKWebView es que webView.titile estará vacío, por lo que puede verificar si webView.title está vacío cuando viewWillAppear, recargando así la página.

La combinación de estos dos métodos puede resolver la mayoría de los problemas de pantalla blanca.

iOS WKWebView interactúa con JS: /p/4d12d593ba60

WKWebView: intercepta solicitudes web y sin conexión.