Tengo un WebViewClient
unido a mi WebView
así:Android - Procedimiento para interceptar un POST forma en WebViewClient androide en el nivel API 4
webView.setWebViewClient(new MyWebViewClient());
Aquí es mi implementación de MyWebViewClient
:
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
webView.loadUrl(url);
return true;
}
}
Doy el WebView
una URL para cargar a través del loadUrl()
. Si tengo un enlace (a href...
) en la página, mi método shouldOverrideUrlLoading
se llama y me puede interceptar el enlace de clic.
Sin embargo, si tengo un formulario cuyo método es POST
, no se llama al método shouldOverrideUrlLoading
.
Me di cuenta de un problema similar aquí: http://code.google.com/p/android/issues/detail?id=9122 que parece sugerir el reemplazo postUrl
en mi WebView
. Sin embargo, esta API sólo está disponible a partir del nivel de la API 5.
¿Qué puedo hacer si estoy en el nivel API 4? ¿Hay alguna otra forma de interceptar publicaciones de formularios?
Puede intentar anular la devolución de llamada iniciada por página en WebViewClient. – bhups
Gracias. Intenté eso y funciona bien, pero el problema es que no quiero cargar la página del formulario, es una URL falsa, así que termino obteniendo la página de error de webview. Estuve solucionando esto al registrar en la página Inicio de página si la URL coincide con la URL de mi formulario, y si es así, manejar esto en mi aplicación y luego decirle al webViewClient que vuelva. ¿Eso suena razonable? – manisha
¿Encontró una solución a esto? – Sohaib