shouldOverrideUrlLoading dans WebView pour Android pas en cours d'exécution

-Edit: Solution Trouvée-

Compris après quelques lourds de la recherche - une personne (je veux dire littéralement que l'on) dit ils ont plutôt utilisé onPageLoad(); qui a fonctionné parfaitement à mes besoins. La différence est que onPageLoad() s'exécute au plus tard shouldOverrideUrlLoading, mais Il n'est pas de faire une différence dans mon code.

Je suis en train de configurer Twitter avec l'autorisation OAuth pour une application Android, et à ce jour je peux réussir à envoyer à l'utilisateur l'autorisation d'URL, cependant, ce que je suis en train de faire maintenant est d'intercepter les rediriger à la fonction de rappel (ce qui pourrait conduire à une erreur 404, notre URL de callback n'allez pas avoir une page sur nos serveurs). Ce que j'essaie de faire est de vérifier si l'URL est notre rappel, puis d'en extraire les OAuth Vérificateur à partir de l'URL. J'ai paramétré mon WebView avec ce code:

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 Système.out.println("url");(dont je suis l'aide de débogage)ne fonctionne pas! Donc, je suis assez sèche sur les idées, et ne peut pas trouver quelqu'un avec un problème similaire. L'autorisation de l'URL passe par de bien, et je peux réussir à autoriser l'application, cependant le rediriger vers l'URL de callback pour une raison quelconque jamais obtenir est intercepté. Toute aide serait appréciée, c'est dans ma onResume (), si les questions.

  • Êtes-vous sûr que shouldOverrideUrlLoading est la bonne méthode que vous souhaitez remplacer?
  • Je suis assez sûr - aussi loin Que je l'ai lu, il est exécuté à chaque fois qu'une URL est chargé
  • eh bien, si System.out.println("url"); n'est pas en cours d'exécution je pourrais simplement le triple de contrôle vous écrasez la bonne méthode
  • J'ai été en regardant autour, et Il semble être ce que je suis à la recherche pour. Je ne peux pas trouver quelqu'un avec un problème similaire; si rien le problème dans la plupart des cas avec cette méthode est qu'elle s'exécute à CHAQUE fois qu'une URL est chargé.
  • J'ai mis en place un projet de test pour cela, et Im avoir exactement le même problème... semble que cela est recommandé de trop, Mauvais vous tenir au courant.
  • Je vais avoir ce même problème sur l'émulateur, mais pas sur des dispositifs réels. Bizarre.

InformationsquelleAutor Justin | 2011-07-18