如何在android中从web视图获取当前页面url
使用如何在android中从web视图获取当前页面url,android,url,webview,Android,Url,Webview,使用webview.loadUrl(url)方法打开一个url。如果我单击视图上的任何按钮,它将指向另一个页面。现在我想获取定向页面的url。我怎样才能得到它 我还想要在webview上显示的内容。如何获取WebView的内容?我假设您已经设置了WebViewClient。如果没有设置,您可以执行以下操作 webView.setWebViewClient(new MyWebViewClient()); String currentUrl; private class MyWebViewCli
webview.loadUrl(url)
方法打开一个url。如果我单击视图上的任何按钮
,它将指向另一个页面。现在我想获取定向页面的url。我怎样才能得到它
我还想要在webview上显示的内容。如何获取
WebView
的内容?我假设您已经设置了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,请看我的答案
愿它能帮助你
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);
}
});
对于API>20,这是处理此问题的最简单的方法:显然还有其他方法使用诸如HTMLCleaner之类的解析器来进行更多控制。然而,这对于获取URL来说是好的和简单的。每次Webview中的URL更改时,请求对象中的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方法来进行调用。我想指出这一点,因为这是在页面完成加载时调用的 我无法从任何重写的方法获取任何消息。这太棒了。应为所选答案请注意,
currentUrl
在返回时不会更新。另一种方法是覆盖onPageStarted上的
。
@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;
}