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

使用webview.loadUrl(url)方法我打开一个url。 如果我单击视图上的任何Button ,它将指向另一个页面。 现在我想得到定向页面的url。 我怎么才能得到它?

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

  • 如何停止Android中的WebView的INTERNAL滚动?
  • Android 4.0.1打破了WebView HTML 5本地存储?
  • 如何在Android应用程序的在线和离线模式下加载或检索网页?
  • 如何使用android webview中的代码发送POST数据
  • Android WebView焦点问题
  • 如何在WebView中内嵌HTML5video?
  • 不要导航到WebView中的其他页面,禁用链接和引用
  • 我怎样才能显示一个PDF文档到Webview?
  • 请看我的回答可能会对你有所帮助…… !!!!

     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); } }); 
     String webUrl = webView.getUrl(); 

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

    我假设您已经设置了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获取当前的url。

    对于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方法来打电话。 我想要注意这一点,因为在页面加载完成时会调用它。