Android WebViewリダイレクトページをロードして解決策を後退できません

1557 ワード

プロジェクトでは、サードパーティのWebページをwebViewでロードする必要があります.そのうち、あるページは別のページにリダイレクトされ、ページが後退できないため、前のページに戻ることができません.また、前のインタフェースにリダイレクトされます.リダイレクトソースページもブラウズレコードに追加されます.apiで履歴を編集する方法を探し始めました.リダイレクトソースページを履歴から削除します.半日も見つかりません.clearHistoryメソッドのみ.
その後、ブラウザでWebサイトにアクセスすると、正常に戻り、リダイレクトページに戻ります.微信でWebViewを内蔵し、QQでWebViewを内蔵してこのページを開くと後退するのも正常で、リダイレクト元のページも閲覧記録に追加されていることが分かった.
 
この問題に悩んで2、3日困ったが、各サイトは解決策を探しても完璧な方法が見つからず、ほとんどが新しい集合で閲覧記録を別途記録し、後退時に集合の記録をロードするページだった.Webviewは使いませんgoBack()は、stackOverflowで探してもほとんどこれです.これらの方法は完璧ではなく、根本的に問題を解決していないような気がします.いつももっと良い方法があるような気がして、偶然に解決策を見つけました.
WebViewを使用する場合、私たちは一般的にWebViewClientを設定し、shouldOverrideUrlLoadingメソッドを書き換え、webViewにurlをクリックし、return trueをロードさせます.このように設定しないため、ページの上のリンクをクリックしてブラウザをポップアップします
		webView.setWebViewClient(new WebViewClient() {

			@Override
			public boolean shouldOverrideUrlLoading(WebView view, String url) {
				 view.loadUrl(url);
				return true;
			}

		});

リダイレクトソースページが履歴に追加されるのは、この設定のようです.意外な解決策は次のコードです
	webView.setWebViewClient(new WebViewClient() {

			@Override
			public boolean shouldOverrideUrlLoading(WebView view, String url) {
				 
				return false;
			}

		});

以前はWebViewClientを設定していないのと同じように、ポップアップブラウザに接続すると思っていました.意外にも全く違うので、設定ポイント接続が現在のwebViewで開かれ、リダイレクトページが後退しても問題ありません
解決できない場合は、Webページコードをチェックして、標準HTTPプロトコルのリダイレクト(すなわちHTTP 30 Xステータスコード+Locationヘッダフィールドのリダイレクト)を使用するか、ロード後にwindowを変更するかを確認してください.locationなど他の方法で他のページに移動し、より多くの内容を表示できます.
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Redirections