如果url在webview中包含单词,请执行操作

时间:2015-05-27 06:48:26

标签: android webview

使用WebView,如果url包含accesstoken ="在此处访问令牌,我该如何制作一个动作"并在accesstoken =之后从url获取令牌,然后将其重定向到我的网站,如http://example.com/login.php?token="此处访问令牌" ?我已经复制了应用程序中的代码,所以我希望你能理解我想要做的事情

   public void onPageFinished(WebView webview, String s)
        {
            if (s.contains("www.facebook.com/"))
            {
                test();
                return;
            } else
            {
                Asycdialog.dismiss();
                return;
            }
        }

        public void onPageStarted(WebView webview, String s, Bitmap bitmap)
        {
            Asycdialog.setMessage("Loading .. ");
            Asycdialog.show();
        }

        public boolean shouldOverrideUrlLoading(WebView webview, String s)
        {
            Asycdialog.show();
            webview.loadUrl(s);
            return true;
        }

        public void test()
        {
            String s = web.getUrl();
            if (s != null)
            {
                if (s.contains("blank"))
                {
                    web.loadUrl("http://example.com/Droid");
                }
                if (s.contains("error=access_denied&error_code=200&error_description=Permissions+error&error_reason=user_denied"))
                {
                    web.loadUrl("http://example.com/Droid");
                }
                if (s.contains("access_token="))
                {
                    s = s.replaceAll("#", ".").replaceAll("&", ".").replaceAll("access_token", "dj_token").replaceAll("facebook", "facebooktoken");
                    web.loadUrl((new StringBuilder()).append("http://example.com/Droid/user.php?token=").append(s).toString());
                }
            }
        }

    });
    bundle.loadUrl("http://example.com/Droid");
    setContentView(bundle);
}

2 个答案:

答案 0 :(得分:0)

您应该通过扩展一个来创建自定义webview,在那里覆盖“shouldOverrideUrlLoading”方法并检查url参数,如果它包含访问令牌参数,则加载目标URL并保存您的访问令牌(如果需要)。

答案 1 :(得分:0)

将webViewClient设置为您的webView obj,如下所示。

        webView.setWebViewClient(new WebViewClient(){
        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);

             // write your code here to get access token, check it,
             //and load webView with the url where u wanted to redirected.

        }

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
        }
    });

使用此代码获得答案......