我有一个问题。
我使用webview在我的应用中加载网址(例如www.example.com/yyy),但每当我执行“加载”操作时行动, 总有另一个负载'动作尝试加载网站的网站图标(网址是www.me.com/favicon.ico)。这将返回404未找到的错误。
这是(加载favicon)webview的默认行为吗?我怎么能禁用它?
以下是发送请求的标头。
GET /favicon.ico HTTP/1.1
Host: xxx.com
Pragma: no-cache
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5 Build/MMB29Q; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/48.0.2564.106 Mobile Safari/537.36
Referer: http://www.example.com/k.gif?yd_ewp=498&yd_ext=EnQKATASIDM0YzZkNjE3MjcyNjI1N2I0N2FiMjIxZWM1Mzc5MmZkIksIxJSRCBDw5P8BGPKzHiC1_RAo8k4wZDhkZQAA-UNwAHgAgAEAmAEBogELVHJhZGl0aW9uYWy6ARJ7Ik9SREVSRURfSUQiOiIxIn0wAiIkOTI5NDM4MDMtZjFiOS00NGUyLTkwZjgtYzgwNmE2YmU5OWUyKG4wADoAQgBSDzExNC4yMTUuMTI5LjEyNWoNMTQ1ODAxMjg1MjkxOHgAggEAiAHyA5ABtqXawrcqqAEBsAEBuAEBwgEDOTY4yAEB0AEB2gEPMzU4MjM5MDU3NjEyMzYw
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,en-US;q=0.8
X-Requested-With: com.you
代码是webview的一个非常简单的用法:
mWebView = new WebView(this);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
mWebView.getSettings().setLoadWithOverviewMode(true);
mWebView.getSettings().setUseWideViewPort(true);
mWebView.setWebViewClient(new WebViewClient(){
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
loadNext(view);
}
@Override
public void onPageFinished(WebView view, String url) {
loadNext(view);
}
private void loadNext(WebView view){
mIndex++;
if(mIndex < mUrlSize){
try {
view.loadUrl(mUrls[mIndex]);
}catch (Exception e){
e.printStackTrace();
}
} else {
stopSelf();
}
}
});
答案 0 :(得分:0)
一个快速解决方法是覆盖自定义getFavicon()
中的WebView
功能。只需覆盖该功能。它应该返回一个Bitmap
对象,因此您可以返回任何虚拟位图。