私のWebビューは、ロードが完了した後に別のURLに変更されるURLをロードします。どうすれば新しいURLをキャッチできますか。 getURL()
は常に2番目ではなく1番目のURLを返します。ブラウザを使用すると新しいURLを表示できますが、Webビューからは取得できません。
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
}
});
使用する
_getOriginalUrl ()
_
現在のページに対して最初に要求されたURLを返します
getUrl ()
は、常に_WebViewClient.onPageStarted
_に渡されるURLと同じではありません。そのURLのロードが開始されたが、現在のページが変更されていない可能性があるためです。
getOriginalUrl ()
は、現在のページの元のURLを取得します。これは、_WebViewClient.onPageStarted
_に渡されるURLと常に同じではありません。そのURLのロードが開始されたが、現在のページが変更されていない可能性があるためです。また、リダイレクトがあったために、最初に要求されたURLとは異なるURLになる可能性があります。