6

Estoy tratando de desarrollar una aplicación de navegador Android usando WebView que permite a los usuarios acceder al contenido desde un protocolo personalizado. El protocolo personalizado podría ser foobar: //Android WebView Protocol Handler

Quiero interceptar todas las solicitudes a este protocolo personalizado. Esto significa:

  1. peticiones GET
  2. peticiones POST

y tengo que ser capaz de entregar los resultados de estas operaciones de nuevo a la vista Web.

Las solicitudes GET pueden manejarse usando shouldInterceptRequest (disponible desde el nivel 11 de la API).

Ahora mi problema es: ¿Cómo puedo incercept y manejar las solicitudes POST?

Casi la misma pregunta ha sido hecha here y here, sin embargo, no se han encontrado soluciones para sus problemas.

+0

¿Ha intentado anular la carga de la url? – Raykud

Respuesta

0

has necesitado primordial para el procedimiento de después de hacer algo como:

private class ViewerWebViewClient extends WebViewClient { 

     @Override 
     public void onPageFinished(WebView view, String url) { 

     } 

     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, final String url) { 
      if(!url.contains(MYKEYWORD)) 
       { 
       Toast.makeText(getActivity(),POSTING, Toast.LENGTH_LONG).show(); 
       return true; 
       } 
      return super.shouldOverrideUrlLoading(view, url); 
     } 
    } 

es sólo una idea. que tal vez podría ayudarte.

+2

Esto es útil si el usuario está navegando hacia alguna URL y deja la página actual. Puedo usar WebView.loadUrl (...) o .post (...). Sin embargo, si el navegador solo está haciendo una solicitud de fondo (piense en javascript), entonces no puedo devolver el contenido. shouldInterceptRequest puede manejar solicitudes GET y devolver el contenido, pero no es posible interceptar las solicitudes POST y obtener los datos POST. Lamentablemente, su método no resuelve el problema. ¡Gracias por intentarlo! – foens