Configuración de las cookies de Webview de Android desde un archivo HTML en el directorio de activos

Estoy intentando establecer una cookie usando javascript dentro de una webview. La vista web se carga desde el directorio de activos locales de la misma forma (donde la página es una cadena como "index.html")

engine.loadUrl("file:///android_asset/" + page); 

He encontrado cuando el mismo archivo es cargado desde la web (es decir, http://www.domain.com/index.html ) a continuación, el mismo archivo puede establecer la cookie como se esperaba.

Las versiones anteriores de android permiten la creación de cookies en archivos locales, pero las versiones más recientes no. He probado esto y funciona en Samsung Galaxy Ace, HTC Desire Z y emuladores eclipse de SDK inferior, pero no funciona en Samsung SIII ni Samsung Tab 10.1.

Necesito establecer una cookie para transportar datos entre páginas en mi webview; Guardando los resultados de búsqueda para volver a mostrarlos.

Si alguien sabe de cualquier método / hacks para obtener alrededor de estos problemas de archivo local que realmente reeeally apreciar. He estado en esto por cerca de 8 semanas ahora. Hice una pregunta simular que puede ser útil para leer más, pero el problema ya ha sido identificado y es una pregunta muy diferente, así que estoy preguntando esto aquí. La cookie de la webview de Android devuelve null

Gracias.

2 Solutions collect form web for “Configuración de las cookies de Webview de Android desde un archivo HTML en el directorio de activos”

La razón de esto no es posible es hasta una limitación de seguridad de la aplicación de cookies sobre localhost. Si el ajuste de cookies era posible, también sería posible para otros crear aplicaciones y leer las cookies de las aplicaciones. Solía ​​ser posible en versiones anteriores de Android, pero el agujero de seguridad fue remendado más tarde.

Esta es la razón por la misma limitación existe en los navegadores web convencionales.

Vea esta pregunta y respuesta relacionadas: Android webview cookie returns null

He estado tratando con un caso de uso similar como el que usted describe, aquí está el enfoque que tomé

  • Siempre que necesitaba establecer cookies directamente en el Cordova WebView (como las cookies de esquema de archivos):

     CookieManager.getInstance().setCookie("/", "MyCookie=xxx"); 
  • Cuando una biblioteca JS creaba cookies de esquema de archivo (ya que se cargan desde el sistema de archivos) y necesitaba obtener esos valores en la capa "nativa", usaría:

     CookieManager.getInstance().getCookie("file://"); 

Este último devolverá una larga cadena de todas las cookies de esquema de archivos, que puede dividir en una matriz y analizar una por una

Espero que esto ayude.

  • Se esperaba BEGIN_OBJECT pero era BEGIN_ARRAY en la línea 1 columna 2 (edición pequeña)
  • Servicio llamado de Android a C # no funciona
  • WebView.draw () no funciona correctamente en la última versión de WebView de Android System
  • Conexión de cliente a servidor en aplicaciones de chat como Viber o Telegram
  • Android 4.1 webview javascript no funciona.
  • El banner de instalación de la aplicación no funciona
  • Vista web de Android en la mitad de la pantalla
  • ¿Puedo ejecutar JavaScript sin un WebView, o un WebView puede ejecutarse sin un contexto de actividad, como en un servicio?
  • Obtener el precio de un sitio web minorista
  • Emular archivos de hosts en Android no enraizado
  • WebView: solicitud incorrecta al cargar una url
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.