Bunu küçük bir kesmekle başardım. İlk olarak, sahte bir 1x1 simge dosyası oluşturdum ve varlıkları klasörüne kaydettim. O zaman ben bu bizim sahte simge içerir favicon dosyası için ve InputStream ile bu durumda dönüş WebResourceResponse istek olup olmadığını URL'yi kontrol WebViewClient's shouldInterceptRequest() yöntemi, overrode: inputStream kapalı gerektiğini
@Override
@CallSuper
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
if(!request.isForMainFrame() && request.getUrl().getPath().equals("/favicon.ico")) {
try {
return new WebResourceResponse("image/png", null, new BufferedInputStream(view.getContext().getAssets().open("empty_favicon.ico")));
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
Not bizim kodu, daha sonra simge okumak için WebView tarafından kullanılır. WebviewClient onun setter yoluyla WebView'da ayarlanması gerekir: Benim için
mWebView.setWebViewClient(subclassedWebViewClient);
Bu işe yaramazsa, yöntem senkron ve sadece şu anda favicon en Bitmap önbelleğe döndürür. –