我试图使用
如果我请求“google.com”,它应该被重定向到“google.co.uk”,但是 webview 不知道重定向,如果带有“co.uk”的 css 文件链接是“/render/something.css”,那么 webview 仍然会去 "http://www.google.com/render/something.css" 找到应该是 "http://www.google.co.uk/render/something.css" 的 css 文件。
有人可以帮我吗?
ShouldInterceptRequest
拦截Webview请求,内部使用HttpUrlConnection
从服务器获取数据,并设置其跟随重定向,这对于Webview客户端来说是透明的。这意味着当我返回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”,但是 webview 不知道重定向,如果带有“co.uk”的 css 文件链接是“/render/something.css”,那么 webview 仍然会去 "http://www.google.com/render/something.css" 找到应该是 "http://www.google.co.uk/render/something.css" 的 css 文件。
有人可以帮我吗?