Eliminar el caching interno de UIWebView

Estoy mostrando una aplicación web en una UIWebView y, a veces, el contenido de las páginas cambiará. Una vez que se ha cambiado el contenido, la aplicación borra el caching. Pero cuando voy a una página que visité anteriormente, el UIWebView no envía una request HTTP GET, pero carga desde el caching, aunque he desactivado el caching de la siguiente manera:

 [[NSURLCache shanetworkingURLCache] removeAllCachedResponses]; [[NSURLCache shanetworkingURLCache] setDiskCapacity:0]; [[NSURLCache shanetworkingURLCache] setMemoryCapacity:0]; 

Inicialmente estoy cargando una request con cachePolicy cachePolicy:NSURLRequestReturnCacheDataElseLoad .

 [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:myURLString] cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:10.0]]; 

UIWebView tiene algún tipo de memory caching interna. Las páginas ya visitadas se cargarán desde este caching interno en lugar de pasar por NSURLCache y tampoco se enviará ninguna request.

¿Hay alguna manera de borrar el caching interno de UIWebView ? Incluso estoy recreando el UIWebView pero el caching todavía está allí.

Parece que lo que está sucediendo aquí es que vuelve a cargar el file HTML real, pero no recarga necesariamente los resources dentro de esa página.

Una posible solución que he visto es agregar un parámetro de consulta al final de la URL. Por ejemplo:

 NSString *testURL = [NSString stringWithFormat:@"%@?t=%@", url, randQuery]; [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:testURL] cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:10.0]]; 

donde generará una cadena alfanumérica aleatoria como parámetro de consulta de randQuery, o mantendrá un conteo persistente y solo contará.

Esto debería obligar a UIWebView a cargar desde el recurso remoto.

Tuve el mismo problema y configuré la propiedad HTTPShouldHandleCookies para que NO solucionara mi problema.

Por ejemplo:

 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:strurl]]; [request setHTTPShouldHandleCookies:NO]; [webView loadRequest: request]; 

Espero que esto ayude.