trato de volver a utilizar una vista Web existente en la limpieza de los datos privados del usuario anterior quedan:¿Cómo borrar el historial visitado (CSS) de un Android WebView?
CookieManager.getInstance().removeAllCookie();
webview.clearHistory();
webview.clearFormData();
webview.clearCache(true);
clearHistory
parece sólo para despejar el/la lista hacia adelante hacia atrás, accesible a través de la API, pero no la lista interna utilizado para colorear enlaces dentro del contenido web.
Incluso he intentado lo siguiente, sugerido por otro stackoverflow answer:
deleteDatabase("webview.db");
deleteDatabase("webviewCache.db");
Todavía no tengo suerte: CSS :visited
selectores siguen trabajando después de volver a cargar la página.
Una alternativa sería utilizar la función de navegación privada de nivel 11 de API (nuevo argumento de constructor), pero no puedo aprovechar los enlaces visitados en absoluto; y ya no puede orientar las versiones anteriores.
Quizás alguien tenga una solución para este problema? Gracias por tu ayuda.
Resumen de las respuestas que tengo hasta ahora:
me trataron estas dos respuestas, pero el primero parece borrar el almacenamiento de datos HTML5 y la última parece ser específica para el navegador integrado:
WebStorage.getInstance().deleteAllData();
Browser.clearHistory(getContentResolver());
WebChromeClient.getVisitedHistory(ValueCallback<String[]> callback)
solo se llama después de la primera vez que creo un nuevo WebView en una aplicación recientemente instalada.
Intenté eliminar el WebView
de la jerarquía de vista y creo una nueva, pero desafortunadamente el historial visitado parece estar almacenado para toda la aplicación.
Gracias por el esfuerzo, me gusta la idea, pero el problema es que no se llama a 'getVisitedHistory' en cada carga de página (como ya ha indicado). Tal vez vale la pena el esfuerzo comprobar si la invocación de 'getVisitedHistory' se puede forzar de alguna manera. – Nappy
Acabo de actualizar mi respuesta con mi pensamiento personal sobre el asunto. –