Nido Apple

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

0voto

Vaciar Cache webview

Hola a todos,
tengo un app que muestra una web,
en este sitio cada tanto se hacen algunos cambios,
pero en el app no se ven estos cambios que se hacen en el server.
Para poder verlos tengo que apagar el telefono y aprenderlo de vuelta y en esta manera puedo ver la actualización.
Por eso pensé de introducir en el código un vacía cache,
pero sin tener ningún resultado, siempre igual
alguien sabe como arreglar esto.
Gracias a todos.

Metodo 1

- (void)viewDidLoad {

    [super viewDidLoad];

          [webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com”]]];

           [[NSURLCache sharedURLCache] removeAllCachedResponses];   

}

- (void)webView:(UIWebView *)webViewfail didFailLoadWithError:(NSError *)error {
    if([webViewfail isEqual:webview]) {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Connection Failed"
                                                        message:@"Check your Internet connection before refreshing."
                                                       delegate:self
                                              cancelButtonTitle:@"OK"
                                              otherButtonTitles:nil];
        [alert show];

    }
}

- (void)webViewDidStartLoad:(UIWebView *)webView { //Start Load
    [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES]; //Activity Indicator start
}

- (void)webViewDidFinishLoad:(UIWebView *)webView {//Finish Load
    [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO]; //Activity indicator stop
}

Metodo 2

[webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com"]cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:50.0]];

En ningún modo me anda siempre igual

5 Respuestas

0voto

Peter Puntos274450

Con este remueves el cache de una solicitud específica.

[[NSURLCache sharedURLCache] removeCachedResponseForRequest:NSURLRequest];

Como segunda opción, con este remueves todas las solicitudes que existan en el UIWebView.

[[NSURLCache sharedURLCache] removeAllCachedResponses];

Después de eso puedes borrar todas las cookies asociadas a ese UIWebView con esto:

for(NSHTTPCookie *cookie in [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]) {

    if([[cookie domain] isEqualToString:someNSStringUrlDomain]) {

        [[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie];
    }
}

Saludos.

0voto

leorunn Puntos2580
Como vos escribiste Como segunda opción, con este remueves todas las solicitudes que existan en el UIWebView. ese código lo escribí en en metodo uno como podrás ver, pero no pasa nada!! Porque? tendría que actualizar verdad?

0voto

leorunn Puntos2580
image

0voto

Peter Puntos274450

Raro, te debería de funcionar. ¿Lo estas probando en el iPhone?

someNSStringUrlDomain solo es de ejemplo, tendrías que definir el tuyo.

Para el cache prueba poniendo esto en tu AppDelegate.m a ver si te funciona.

+(void)initialize {[[NSURLCache sharedURLCache] setDiskCapacity:0];[[NSURLCache sharedURLCache] setMemoryCapacity:0];}

Saludos.

0voto

leorunn Puntos2580
Si lo estoy provando directamente con iPhone, ahora arregle el error, gracias no ponía el url. Es justo que aya dos veces el URL? como ves en la foto uno para la web y otro para el cookie? Te explico que sucede, puede ser que te viene una idea para este problema, tengo dos imágenes que se ven en la web del app, después cargo en el server otras dos imágenes, en esta manera veo cuatro imágenes en la app,hasta acá todo ok! se acuatiza muy rapido. Pero cuando pruebo a sacar dos imágenes dal server en la app se ven siempre cuatro, es este mi problema prove en muchas modos sin poder resolver. Cuando se cargan imágenes todo bien cuando se sacan todo mal. Ahora prove estos métodos que me consejas pero todavía sigue igual. Gracias!! image

Por favor, accede o regístrate para responder a esta pregunta.

¿Conoces alguien que puede responder?
¡Comparte esta pregunta!


...