2010-09-05 21 views
9

que tienen un UIWebView, y yo no lo quieren para almacenar una galletas, así justo antes de que se cargue la vista web que hago:cookies en UIWebView

NSArray* cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]; 
for (NSHTTPCookie *cookie in cookies) { 
    [[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie]; 
} 

Comprobación del recuento de las cookies es 0 por lo que son todo eliminado Pero cuando voy a stackoverflow todavía reconoce mi cuenta de Google y me registra. ¿Cómo sucede esto? ¿Pensé que funcionaba con cookies?

Respuesta

7

tuve que lidiar con el problema exactamente el mismo y me encontré con 2 formas de lidiar con ese problema. Noté por primera vez que las cookies se ajustan (a veces) a tiempos extraños (comportamiento extraño especialmente con ios 4.0).

  • La eliminación instantánea de cookies después de que el usuario estaba en una vista web a menudo no me daba los resultados esperados.

que después se integra un persistente, bandera manual que se establece en True en una acción de "cerrar sesión" (también conocido como clara todas las cookies/borrar otros datos de usuario). en el siguiente inicio de sesión (también conocido como acción basada en el inicio de sesión del usuario) Borré las cookies nuevamente (de la misma manera que lo hizo en su publicación de códigos).

Más tarde descubrí, que escuchar NSHTTPCookieManagerCookiesChangedNotification y luego eliminar las cookies funcionó muy bien también.

Espero que pueda ayudar.

6

Prueba a cambiar la política de aceptación de cookies en su lugar:

[NSHTTPCookieStorage setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyNever]; 
+0

El problema es que esto impide que se realicen cookies. Quiero eliminar las existentes. Lo ideal es eliminar todos los cachés, cookies, almacenamiento local y otros datos de usuario. –

+0

Hola Jonathan, según tu pregunta, no sabía qué acciones adicionales querías realizar. Parece que está buscando una memoria caché completa, no estoy seguro de que sea posible. ¿Qué estás tratando de hacer exactamente? ¿Por qué necesita borrar todos los cachés, cookies y datos de almacenamiento/usuarios locales? – defbyte

0

Uso siguiente y funcionará ..

NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; 
    NSHTTPCookie *cookie; 
    for(cookie in [storage cookies]) 
    { 
     NSLog(@"cookie to be deleted:%@", cookie); 
     [storage deleteCookie:cookie]; 
    } 
    [[NSUserDefaults standardUserDefaults] synchronize]; 

aquí no se pierda última línea [[NSUserDefaults standardUserDefaults] sincronizar]; de lo contrario, seguirás siendo un enigma.