を使用して webview リクエストを傍受しようとしていました: ShouldInterceptRequest
、その中でHttpUrlConnection
サーバーからデータをフェッチするために使用し、リダイレクトに従うように設定しました。これは webviewclient に対して透過的です。つまり、WebResponseResource("", "", data_inputstream) を返すと、webview はターゲット ホストが変更されたことを認識しない可能性があります。これが発生したことを webview に伝えるにはどうすればよいですか?
ourBrowser.setWebViewClient(new WebViewClient() {
@Override
public WebResourceResponse shouldInterceptRequest(WebView view,
String url) {
..... //some code omitted here
HttpURLConnection conn = null;
try {
conn = (HttpURLConnection) newUrl.openConnection();
conn.setFollowRedirects(true);
} catch (IOException e) {
e.printStackTrace();
}
..... //
InputStream is = null;
try {
is = conn.getInputStream();
} catch (IOException e) {
e.printStackTrace();
}
return new WebResourceResponse(mimeType, encoding, is);
}
}
「google.com」をリクエストすると、「google.co.uk」にリダイレクトされるはずですが、「co.uk」に添付されているcssファイルのリンクが「/render/something.css」の場合、webviewはリダイレクトを知りませんでした"、webview は " http://www.google.com/render/something.css " に移動して、" http://www.google.co.uk/render/something.cssであるはずの css ファイルを見つけます。 "。
誰でも私を助けることができますか?