📅  最后修改于: 2023-12-03 14:52:37.549000             🧑  作者: Mango
在 Android 应用中,我们可以使用 WebView 控件来显示网页内容。但是有时候我们需要获取当前正在显示的网页的地址,以便进行相应的逻辑处理。本文将介绍如何在 WebView Android 中获取当前正在显示的网页的地址。
我们可以通过 WebView 的 WebViewClient
类中的 shouldOverrideUrlLoading
方法获取当前网页的地址。该方法会在页面开始加载时被调用,并且可以获取到加载页面的 URL。
具体的实现方式如下所示:
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// 获取当前网页地址
String currentUrl = view.getUrl();
return super.shouldOverrideUrlLoading(view, url);
}
}
在 shouldOverrideUrlLoading
方法中,我们可以使用 view.getUrl()
方法获取当前加载页面的 URL,然后进行相应的处理。
为了更好地说明获取当前网页地址的实现过程,下面是一个完整的示例代码:
public class MainActivity extends AppCompatActivity {
private WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWebView = findViewById(R.id.webView);
// 设置 WebView 客户端
mWebView.setWebViewClient(new MyWebViewClient());
// 加载网页
mWebView.loadUrl("https://www.google.com/");
}
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// 获取当前网页地址
String currentUrl = view.getUrl();
// 在 Logcat 中输出当前网页地址
Log.d("MainActivity", "currentUrl: " + currentUrl);
return super.shouldOverrideUrlLoading(view, url);
}
}
}
在上面的代码中,我们创建了一个 WebView 控件,并且设置了一个自定义的 WebView 客户端 MyWebViewClient
,该客户端中的 shouldOverrideUrlLoading
方法用于获取当前网页的地址。在 shouldOverrideUrlLoading
方法中,我们使用 Log
类在 Logcat 中输出了当前网页的地址。