GOLDEE
GOLDEE

Reputation: 2318

shouldoverrideurlloading not called Webview Android

First of all , this post may ,look like a Possible Duplicate of other question, but I have go through many questions but found them not helpful. Now My problem is that I am loading an URL in my Webview and then I want to Trace URL on each event on webview so I have set up WebviewClient for Webview and overridden shouldoverrideurlloading method, but after first Event , shouldoverrideurlloading not getting called. (worked first time)

Here is the Code I have used :

    wvSecurity = (WebView) findViewById(R.id.wvSecurity);               
    wvSecurity.getSettings().setJavaScriptEnabled(true);
    wvSecurity.getSettings().setAllowContentAccess(true);
    wvSecurity.getSettings().setAllowUniversalAccessFromFileURLs(true);     
    wvSecurity.getSettings().setBuiltInZoomControls(false);
    wvSecurity.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
    wvSecurity.getSettings().setLoadWithOverviewMode(true);
    wvSecurity.getSettings().setDomStorageEnabled(true);

    wvSecurity.loadUrl("URL");

    wvSecurity.setWebViewClient(new WebViewClient() {
                @Override
                public boolean shouldOverrideUrlLoading(WebView view,
                        final String urlStr) {
                    Log.i("URL", "::" + urlStr);
                    return false;
                }
    }

EDIT ::

Ok, The URL which I want to Trace uses POST method , Now my question is How can I trace POST URL and its data. And one thing , I dont have access to Webpage coming in so I simply cant go for GET method. Please Help !!!

Upvotes: 3

Views: 8422

Answers (2)

PankajSharma
PankajSharma

Reputation: 1564

I think you need to pass the url in place on "URL" so this will solve your problem.

        wvSecurity = (WebView) findViewById(R.id.wvSecurity);
        wvSecurity.getSettings().setJavaScriptEnabled(true);
        wvSecurity.getSettings().setAllowContentAccess(true);
        wvSecurity.getSettings().setAllowUniversalAccessFromFileURLs(true);
        wvSecurity.getSettings().setBuiltInZoomControls(false);
        wvSecurity.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
        wvSecurity.getSettings().setLoadWithOverviewMode(true);
        wvSecurity.getSettings().setDomStorageEnabled(true);
        wvSecurity.loadUrl("http://www.google.com");
        wvSecurity.setWebViewClient(new HelloWebViewClient());



    private class HelloWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            System.out.println("URL :: " + url);
            view.loadUrl(url);
            return true;
        }

        @Override
        public void onPageFinished(WebView view, final String url) {
        }
    }

Upvotes: 0

Fazal Hussain
Fazal Hussain

Reputation: 31

I guess this method gets called when a hyperlink is tapped from page or some redirection happens. So make sure this thing.

Upvotes: 2

Related Questions