Tengo un WebView
con html que contiene un formulario (publicación). Al hacer clic en un botón enviar, obtengo una respuesta JSON.¿Cómo puedo obtener la respuesta JSON de una solicitud POST en un WebView?
¿Cómo puedo obtener este JSON?
Si no intercepto la solicitud, el json se muestra en la vista web, así que supongo que debería usar shouldInterceptRequest
(estoy usando la API 12), pero no sé cómo obtener el json.
¿O tal vez hay una manera mejor, como interceptar la respuesta en lugar de la solicitud?
mWebView.loadUrl(myURL);
isPageLoaded = false; // used because the url is the same for the response
mWebView.setWebViewClient(new WebViewClient() {
@Override
public WebResourceResponse shouldInterceptRequest (WebView view, String url) {
if(isPageLoaded){
// get the json
return null;
}
else return super.shouldInterceptRequest(view, url);
}
public void onPageFinished(WebView view, String url) {
isPageLoaded = true;
}
});
Gracias
No funciona porque la url es la misma que la del formulario y con la solución obtengo el html con el formulario. En lugar de interceptar la solicitud, debería interceptar la respuesta antes de mostrarla en la vista web, o enviar la solicitud con los parámetros de publicación ... – jul
Debe ignorar la página del formulario y ver la página siguiente cargando ... El documento dice "Da la aplicación de host tiene la oportunidad de hacerse cargo del control cuando una nueva url está a punto de cargarse en el WebView actual ". Por lo tanto, debe establecer un indicador cuando la carga del formulario se complete y atrapar la próxima carga inmediata que suceda ... – Ronnie
No compare el URL ... establezca un indicador para saber cuándo se está cargando el formulario y cuándo se está cargando json .. – Ronnie