Android,抓住webview重定向网址

a f*_*yer 25 android webview android-webview

我的网页视图加载了一个网址 - 在完成加载后 - 更改为另一个网址.我怎样才能抓住新的网址.getURL()总是返回第一个网址而不是第二个网址.如果我使用浏览器,我可以看到新的URL但是我无法从webview获得.

jDu*_*Dur 42

您可以使用webClient并在WebView加载它们之前实现shouldOverrideUrlLoading来拦截所有URL.

    mWebView.setWebViewClient(new WebViewClient() {


        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
           // Here put your code
              Log.d("My Webview", url);

           // return true; //Indicates WebView to NOT load the url;
              return false; //Allow WebView to load url
        }
    });
Run Code Online (Sandbox Code Playgroud)

  • 您可以在WebViewClient中覆盖其他方法.**onLoadResource**和**onPageFinished**.也许你可以在其中一个中抓住你的网址. (3认同)
  • 在寻找同一问题的解决方案时,我发现[一篇文章](http://www.catchingtales.com/android-webview-shouldoverrideurlloading-and-redirect/416/),其中说**shouldOverrideUrlLoading**方法没有调用Android ver <3(SDK 11)中的重定向.他们建议使用**onPageStarted**作为解决方法,它对我有用.但是,我没有检查确实存在的错误. (3认同)

Lin*_*nga 5

getOriginalUrl () 
Run Code Online (Sandbox Code Playgroud)

它返回最初为当前页面请求的 URL

getUrl ()并不总是与传递给的 URL 相同,WebViewClient.onPageStarted因为尽管该 URL 的加载已经开始,但当前页面可能没有改变。

getOriginalUrl ()获取当前页面的原始 URL。这并不总是与传递给的 URL 相同,WebViewClient.onPageStarted因为尽管该 URL 的加载已经开始,但当前页面可能没有改变。此外,可能存在重定向导致与最初请求的 URL 不同的 URL。

  • 实际上,我需要更改后的网址而不是原始网址。总是发生的是我得到了原始的。 (7认同)