Empecé a escribir una aplicación que proporciona al usuario un formulario HTML a través de un WebView. Como el formulario no está bajo mi control, los datos cumplimentados pueden enviarse como solicitud GET o POST. Mi aplicación es necesaria para capturar los datos del formulario transportado, es decir, obtener un control sobre lo que se ingresó en los campos del formulario.¿es posible acceder a datos de formulario HTML PUBLICADOS a través de un WebView?
Usando una devolución de llamada adecuada desde WebViewClient como onPageLoaded()
, es fácil capturar datos de formularios de una solicitud GET. Sin embargo, no puedo encontrar ningún método apropiado para permitir lo mismo para los datos POST, es decir, poder acceder al cuerpo del mensaje HTTP POST que contiene los datos del formulario. ¿Me falta una devolución de llamada relevante aquí o simplemente no hay forma de lograr el objetivo especificado con la API dada (incluso el último nivel 8)?
Suponiendo que no fuera posible, consideré reemplazar y ampliar partes de android.webkit para introducir un nuevo enlace de devolución de llamada que se pasa el cuerpo POST de alguna manera. De esa forma, mi aplicación podría enviarse con un navegador/WebViewClient personalizado que cumpla con la función deseada. Sin embargo, no pude encontrar ningún buen lugar para comenzar con el código y me alegraría cualquier sugerencia al respecto (en caso de que el enfoque parezca prometedor).
¡Gracias de antemano!
En realidad, puede que haya encontrado una manera a mí mismo: Debe ser posible inyectar algo de JavaScript que analiza la campos de formulario cuando el usuario envía el formulario. La interfaz javascript-a-Java proporcionada debería ser capaz de transferir los datos rellenos nuevamente al espacio de Java para su posterior procesamiento. Probaremos ese enfoque e informaremos. Por supuesto, cualquier comentario adicional es bienvenido! –