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
相关产品推荐
相关产品推荐

