4

I need to get a url when user press somethings in a webview. I use this code:

webView = (WebView) rootView.findViewById(R.id.webView);
    WebSettings webSettings = webView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    webView.loadUrl("my url");
    webView.setWebViewClient(new MyWebClient());

MyWebClien

 private class MyWebClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        Log.e("URL", url);
        return true;
    }
}

But, if i click something, the event is never called. Thank you

Anto
  • 907
  • 5
  • 14
  • 26

2 Answers2

10

shouldOverrideUrlLoading(WebView view, String url) will get called on clicking a link on a webview.

usage example:

     webView.setWebViewClient(new WebViewClient() {
       
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) { 

            try {
            
            // do whatever you want to do on a web link click
            
            } catch (Exception e) {
                e.printStackTrace();
            }
            return false;
        }
        
    });



webView.loadUrl("url to open first webpage on a webview");
Lavekush Agrawal
  • 6,040
  • 7
  • 52
  • 85
SAAM
  • 288
  • 2
  • 7
3

Based on this: how to get the current page url from the web view in android

WebView webview = new WebView(context);
webview.setWebViewClient(new WebViewClient()
    {
        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);

            System.out.println("your current url when webpage loading.." + url);
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            System.out.println("your current url when webpage loading.. finish" + url);
            super.onPageFinished(view, url);
        }

        @Override
        public void onLoadResource(WebView view, String url) {
            // TODO Auto-generated method stub
            super.onLoadResource(view, url);
        }
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            System.out.println("when you click on any interlink on webview that time you got url :-" + url);
            return super.shouldOverrideUrlLoading(view, url);
        }
    });
Community
  • 1
  • 1
Panther
  • 435
  • 4
  • 16