📜  如何在 webview android 中获取当前 url (1)

📅  最后修改于: 2023-12-03 14:52:37.549000             🧑  作者: Mango

在 WebView Android 中获取当前 url

在 Android 应用中,我们可以使用 WebView 控件来显示网页内容。但是有时候我们需要获取当前正在显示的网页的地址,以便进行相应的逻辑处理。本文将介绍如何在 WebView Android 中获取当前正在显示的网页的地址。

1. 获取当前网页地址的方式

我们可以通过 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,然后进行相应的处理。

2. 示例代码

为了更好地说明获取当前网页地址的实现过程,下面是一个完整的示例代码:

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 中输出了当前网页的地址。

参考链接