web-dev-qa-db-ja.com

Android、webviewリダイレクトURLをキャッチ

私のWebビューは、ロードが完了した後に別のURLに変更されるURLをロードします。どうすれば新しいURLをキャッチできますか。 getURL()は常に2番目ではなく1番目のURLを返します。ブラウザを使用すると新しいURLを表示できますが、Webビューからは取得できません。

24
a fair player

WebClientを使用してshouldOverrideUrlLoadingを実装すると、WebViewが読み込む前にすべての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
        }
    });
42
jDur

使用する

_getOriginalUrl () 
_

現在のページに対して最初に要求されたURLを返します

getUrl ()は、常に_WebViewClient.onPageStarted_に渡されるURLと同じではありません。そのURLのロードが開始されたが、現在のページが変更されていない可能性があるためです。

getOriginalUrl ()は、現在のページの元のURLを取得します。これは、_WebViewClient.onPageStarted_に渡されるURLと常に同じではありません。そのURLのロードが開始されたが、現在のページが変更されていない可能性があるためです。また、リダイレクトがあったために、最初に要求されたURLとは異なるURLになる可能性があります。

4