Get clicked url in web view in Android

10,883

Solution 1

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

Solution 2

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);
        }
    });
Share:
10,883
Anto
Author by

Anto

Updated on June 07, 2022

Comments

  • Anto
    Anto about 2 years

    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