Как получить текущий URL страницы из веб-представления в android

Используя метод webview.loadUrl(url), я открываю URL-адрес. Если я нажмю на Button на просмотр, он перейдет на другую страницу. Теперь я хочу получить URL-адрес страницы. как я могу его получить?

Я также хочу, чтобы содержимое отображалось в веб-просмотре. Как получить содержимое WebView?

Ответ 1

см. мой ответ может это поможет вам...!!!!

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

                Log.d("WebView", "your current url when webpage loading.." + url);
            }

            @Override
            public void onPageFinished(WebView view, String url) {
                Log.d("WebView", "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);
            }
        });

Ответ 2

String webUrl = webView.getUrl();

Ответ 3

Я предполагаю, что вы установили WebViewClient. Если вы не можете сделать это, как показано ниже,

webView.setWebViewClient(new MyWebViewClient());

String currentUrl;

private class MyWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {         
            currentUrl=url;
            return true;
        }
    }

Здесь, когда вы нажимаете на любую ссылку на WebView, тогда она вызывается shouldOverrideUrlLoading(), и вы можете получить текущий url там в currentUrl.

Ответ 4

это самый простой способ для этого API > 20: Существуют, очевидно, другие методы, в которых парсерам, таким как HTMLCleaner, больше управлять. Тем не менее, это полезно и просто для получения URL. Каждый раз, когда URL-адрес изменяется в Webview, URL-адрес в объекте запроса также изменяется.

@Override
        public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
            String temp  = request.getUrl().toString();
            if(temp.isEmpty()){
                Log.i(ActivityName, "No url returned!");
            }else{
                Log.i(ActivityName, temp);
            }
            return  false;
        }

вы также можете сделать свой вызов, переопределив onpagefinished метод webviewclient. Я хотел бы отметить это, поскольку это называется, когда страница заканчивает загрузку.