2011-08-23 15 views
9

Tengo una WebView que permite a un usuario compartir una imagen en Facebook. Este proceso implica el inicio de sesión en FB. Una vez que terminan, destruyo el WebView y la aplicación se reinicia, y a un usuario diferente se le ofrece la misma funcionalidad. La intención es que WebView no permanezca conectado de una sesión a la siguiente, sin embargo, no estoy seguro de cómo iniciar sesión manualmente el usuario al final de su sesión (al parecer, llamar al http://www.facebook.com/logout.php ya no funciona), y tomar nuevas instancias de WebView y WebChromeClient tampoco lo hace.Limpiando la sesión de Facebook del usuario en Webview

Sin embargo, observo que cuando reinstalo la aplicación (cuando la modifico) el inicio de sesión se borra, entonces, supongo que * de alguna manera Webkit puede decir que esta es una aplicación diferente (ya que está desinstalada y reinstalado) y espero poder aprovechar este (o cualquier otro) mecanismo para borrar lo que sea que contenga la información de inicio de sesión del usuario ... Supongo que es una cookie, pero no estoy seguro de que sea es.

Estoy seguro de que no soy la primera persona que necesita desconectar manualmente al usuario de FB, pero no a través de mi propio oAuth (ya que no soy el que inicia sesión).

Respuesta

30

Está establecido por cookie. Antes de la API utilización 21:

android.webkit.CookieManager.getInstance().removeAllCookie(); 

ahora este método ha sido sustituido por removeAllCookies que es básicamente el mismo, pero con una devolución de llamada asincrónica.

+4

¡SÍ! impresionante ... Añadiré esto (porque es necesario si todavía no has creado un WebView cuando tratas de borrar las cookies) para que sea minucioso: http://developer.android.com/reference/android /webkit/CookieSyncManager.html#createInstance(android.content.Context) –

+1

Nota: removeAllCookie() ahora está en desuso – Roman

Cuestiones relacionadas