-Edit: Solution Found-
Compris après une recherche lourde - une personne (je veux dire littéralement un) a dit qu'ils ont utilisé à la place onPageLoad(); qui a parfaitement fonctionné pour mes fins. La différence est que onPageLoad() s'exécute plus tard que shouldOverrideUrlLoading, mais cela ne fait pas de différence dans mon code. J'essaie de configurer l'autorisation Twitter avec OAuth pour une application Android, et jusqu'à présent, je peux envoyer l'utilisateur avec succès à l'URL d'autorisation, mais ce que j'essaie de faire maintenant, c'est d'intercepter la redirection vers le rappel. (ce qui conduirait juste à une erreur 404, notre URL de callback n'aura pas de page associée sur nos serveurs). Ce que je tente de faire est de vérifier si l'URL est notre rappel, puis d'extraire le vérificateur OAuth de l'URL. Configurer mon WebView avec ce code:shouldOverrideUrlLoading dans WebView pour Android ne fonctionne pas
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());
chose est même System.out.println ("url"); (que j'utilise pour déboguer) ne fonctionne pas! Donc, je suis à peu près sèche sur les idées, et je ne trouve personne avec un problème similaire. L'URL d'autorisation passe bien, et je peux autoriser l'application, mais la redirection vers l'URL de rappel pour une raison quelconque n'est jamais interceptée. Toute aide serait appréciée, ceci est dans mon onResume() si cela est important.
Etes-vous sûr que shouldOverrideUrlLoading est la méthode que vous souhaitez remplacer? –
Je suis assez sûr - Pour autant que je l'ai lu il se lance chaque fois qu'une URL est chargée – Justin
bien si 'System.out.println ("url"); 'n'est pas en cours d'exécution Je pourrais juste tripler vérifier que vous remplacent la bonne méthode –