2010-08-11 36 views
6

Me gustaría mostrar el favicon del sitio web al que estoy accediendo a través de android.webkit.WebView. He intentado dos formas de obtenerlo:Mostrar el favicon de Android WebView

1) WebViewClient.onPageStarted() método tiene un parámetro de favicon que siempre es nulo.

2) WebChromeClient.onReceivedIcon() método nunca se llama.

3) Llamado WebView.getFavicon() en onPageStarted() y onPageFinished() pero siempre devuelve nulo.

No he podido encontrar un ejemplo en línea que muestre cómo acceder al favicon. Cualquier sugerencia sería muy apreciada.

+0

¿Encontró una solución? – znat

+0

@NathanZ - sí, la respuesta de Mark pareció ser el truco. – tronman

Respuesta

18

Para que los métodos y oyentes de iconos de WebView funcionen, primero debe abrir la base de datos de WebIcon manualmente. Normalmente haría esto en el método onCreate() de su actividad.

Trate de añadir la siguiente línea a onCreate():

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

Una vez hecho esto, se debe empezar a recibir onReceivedIcon() devoluciones de llamada para cualquier WebView en esta actividad, y el método getFavicon() también debe comenzar devolver un objeto válido en lugar de nulo cada vez que hay iconos disponibles.

+0

teniendo el mismo problema que @tronman. Intenté su sugerencia, agregando este código a mi onCreate() antes y después de setContentView(). Nunca recibo rellamadas en ReceivedIcon(), y WebView.getFavIcon() siempre es nulo. Así que no dice los dados = ( – MightyE

+0

Muchas gracias @Mark Slee ... su solución funciona perfectamente ... – Zeba

+0

Agradable. Por favor, simplemente especifique que 'Estas funciones requieren que se construya un WebView antes de ser invocado y WebView.getIconDatabase() devolverá un Objeto WebIconDatabase ' – Pascal

0

Creo que para recordar que hay un método getFavicon() disponible para el objeto WebView. aquí está mi estúpida pregunta, ¿lo intentaste?

+0

Sí, lo intenté también. Lo he agregado a mi publicación original para aclararlo. – tronman

+0

¿Puedes dar la url del sitio del que quieres obtener el favicon? Lo echaré un vistazo mañana por la mañana. – Sephy

+0

No importa en qué sitio ... No puedo acceder al favicon para * cualquier * sitio web. Aprecio tu ayuda. – tronman