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.

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.

  • Cómo seleccionar una palabra en la vista web de Android?
  • WebView no carga los activos correctamente
  • cómo guardar y restaurar Webview Estado?
  • WebViews en ViewPager no se cargan / representan hasta que se muestra la página
  • Pestaña servidores no visible en eclipse v3.7.2
  • ¿Por qué mi tamaño de fuente parece mucho más grande en el objeto de vista web android que cuando se ve en el navegador de Android?
  • Trigger touch callout en iOS / android
  • Viewpager + webview, cómo detener la carga de la webview
  • Android webview tiene borde blanco alrededor de él y cómo puedo deshacerme de él?
  • ¿Cuál es la mejor práctica para compartir modelos entre un servidor API WEB y una aplicación cliente Android?
  • Rest Server o API para probar mi cliente Restful?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.