-Edit: Solución encontrada-
Lo encontré después de una búsqueda intensa: una persona (literalmente me refiero a una) dijo que en su lugar usaba en PageLoad(); que funcionó perfectamente para mis propósitos. La diferencia es que onPageLoad() se ejecuta más tarde que shouldOverrideUrlLoading, pero no hace una diferencia en mi código.shouldOverrideUrlLoading en WebView para Android que no se ejecuta
Estoy tratando de configurar la autorización de Twitter con OAuth para una aplicación de Android, y hasta ahora puedo enviar al usuario con éxito a la URL de autorización, sin embargo, lo que intento hacer ahora es interceptar la redirección a la devolución de llamada (lo que daría lugar a un error 404, nuestra URL de devolución de llamada no va a tener una página asociada en nuestros servidores). Lo que intento hacer es verificar si la URL es nuestra devolución de llamada, luego extraer el verificador OAuth de la URL. Cómo fijo mi vista web con este código:
view = (WebView)findViewById(R.id.twitterWbVw);
view.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView wView, String url)
{
String urlHolder;
String[] verifExtrctr;
urlHolder = url.substring(0, url.indexOf('?'));
System.out.println("url");
if(urlHolder.equalsIgnoreCase(CALLBACK_URL))
{
verifExtrctr = urlHolder.split("?");
verifExtrctr = verifExtrctr[2].split("=");
if(verifExtrctr[0].equalsIgnoreCase("oauth_verifier"))
{
params[5] = verifExtrctr[1];
return true;
}
else
{
System.out.println("Inocorrect callback URL format.");
}
}
else
{
wView.loadUrl(url);
}
return true;
}
});
view.loadUrl(urlAuthorize.toExternalForm());
cosa es aun System.out.println ("URL"); (que estoy utilizando para depurar) no se ejecuta! Así que estoy bastante seco en las ideas, y no puedo encontrar a nadie con un problema similar. La URL de autorización es correcta y puedo autorizar la aplicación con éxito, sin embargo, la redirección a la URL de devolución de llamada nunca se ha interceptado. Cualquier ayuda sería apreciada, esto está en mi onResume() si eso importa.
¿Estás seguro de que shouldOverrideUrlLoading es el método correcto que deseas anular? –
Estoy bastante seguro - Por lo que he leído, se ejecuta cada vez que se carga una URL – Justin
si 'System.out.println ("url"); 'no se está ejecutando. Puede que solo compruebe tres veces que está anulando el método correcto –