Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Display the Android WebView's favicon

I'd like to display the favicon of the website I am accessing via the android.webkit.WebView. I've tried two ways to get it:

1) WebViewClient.onPageStarted() method has a favicon parameter that is always null.

2) WebChromeClient.onReceivedIcon() method is never called.

3) Called WebView.getFavicon() in onPageStarted() and onPageFinished() but it always returns null.

I haven't been able to find an example online that shows how to access the favicon. Any hints would be greatly appreciated.

like image 939
tronman Avatar asked Aug 11 '10 20:08

tronman


1 Answers

For the WebView icon methods and listeners to work, you need to first open the WebIconDatabase manually. You would typically do this in the onCreate() method of your Activity.

Try adding the following line to onCreate():

WebIconDatabase.getInstance().open(getDir("icons", MODE_PRIVATE).getPath());

Once you've done this, you should start getting onReceivedIcon() callbacks for any WebView in this Activity, and the getFavicon() method should also start returning a valid object rather than null whenever icons are available.

like image 124
Mark Slee Avatar answered Sep 18 '22 17:09

Mark Slee