shouldOverrideUrl在WebView for Android中未载入

-Edit:解决方案找到 –
在一些沉重的搜索之后,一个人(我字面上意思是一个)表示,而是使用onPageLoad();这完全符合我的目的。不同之处在于onPageLoad()运行于shouldOverrideUrlLoading之后,但是在我的代码中并没有什么不同。

我试图通过OAuth为Android应用程序设置Twitter授权,到目前为止,我可以成功地将用户发送到授权URL,但是我现在要做的是拦截重定向到回调(这将只是导致404错误,我们的回调URL不会在我们的服务器上有关联的页面)。我试图做的是检查URL是否是我们的回调,然后从URL提取OAuth验证器。我使用以下代码设置了WebView:

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());

Thing甚至是System.out.println(“url”);(我正在使用调试)不运行!所以我对想法感到很干涩,也找不到有类似问题的人。授权网址正常,我可以成功授权该应用程序,但是由于某些原因,重定向到回调网址从未被拦截。任何帮助将不胜感激,这是在我的onResume()如果这很重要。

经过一番研究,我得出结论,尽管大部分的教程都在说,shouldOverrideUrlLoading()不会被调用的时候:

>你加载一个URL

loadUrl("http://www.google.com");

>浏览器通过HTTP重定向自动重定向用户。

但是,当您点击网页视图中的网页内的链接时,它会被调用。 IIRC的twitter授权使用HTTP Redirect .. Bummer,这将有助于如果它的工作如何所有的教程说。我认为这是从一个非常老版本的Android API …

您可能需要考虑覆盖WebChromeClient的onProgressChanged方法,如下所示:How to listen for a Webview finishing loading a URL in Android?或WebViewClient的onPageFinished()方法。

http://stackoverflow.com/questions/6738328/shouldoverrideurlloading-in-webview-for-android-not-running

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:shouldOverrideUrl在WebView for Android中未载入