如何从android中的Web视图获取当前页面URL

时间:2014-05-23 11:01:40

标签: android url webview

使用webview.loadUrl(url)方法我打开一个网址。如果我点击视图中的任何Button,它会指向另一个页面。现在我想获得有向页面的网址。我怎么能得到它?

我还想要在webview上显示的内容。如何获取WebView的内容?

4 个答案:

答案 0 :(得分:25)

请看我的回答 它可以帮助你...... !!!!

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

答案 1 :(得分:11)

String webUrl = webView.getUrl();

如果您的意思是内容是网页来源,那么您可以参考:https://stackoverflow.com/a/6503817/28557

答案 2 :(得分:9)

我假设你设置了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(),您可以在currentUrl中获取当前网址。

答案 3 :(得分:0)

这是处理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;
        }

你也可以通过覆盖webviewclient的onpagefinished方法来打电话。我想要注意这一点,因为在页面加载完成时会调用它。