You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android WebView无法获取Chrome地址栏显示的真实URL问题求助

Android WebView无法获取Chrome地址栏显示的真实URL问题求助

各位大佬好!最近我在开发一个带WebView的Android应用时,碰到个头疼的问题——怎么都拿不到像Chrome地址栏显示的那种真实页面URL。下面是我目前的代码片段,麻烦帮忙看看问题出在哪,或者有没有可行的解决办法!

package com.example.flipkartwebview;

import android.os.Bundle;
import android.util.Log;
import android.webkit.WebResourceRequest;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.EditText;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    private WebView webView;
    private EditText editText;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        webView = findViewById(R.id.webView);
        editText = findViewById(R.id.editText);

        webView.getSettings().setJavaScriptEnabled(true);
        webView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
                String url = request.getUrl().toString();
                // 这里尝试获取URL,但有时候拿到的不是Chrome地址栏显示的真实URL
                Log.d("WebViewURL", "当前URL:" + url);
                editText.setText(url);
                return super.shouldOverrideUrlLoading(view, request);
            }
        });
        // 初始化加载目标页面
        webView.loadUrl("https://www.example.com");
    }
}

我遇到的具体问题是:当页面通过JavaScript跳转、或者碰到服务器端30x重定向的时候,shouldOverrideUrlLoading里拿到的URL并不是最终Chrome地址栏会显示的真实页面地址,有时候甚至根本不会触发这个方法。我打了日志发现,很多时候只能拿到初始加载的URL,或者中间跳转的某个临时URL,完全抓不到最终的目标地址。

有没有哪位大佬能指点一下,怎么让WebView可以获取到和Chrome地址栏一致的真实URL呢?感激不尽!

备注:内容来源于stack exchange,提问作者Hodol Kutkut

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 08:47:57