Sto visualizzando un'app Web in un UIWebView
e talvolta il contenuto delle pagine cambierà. Dopo che il contenuto è stato modificato, l'app cancella la cache. Ma quando vado a una pagina Ho già visitato il UIWebView
non invia una richiesta GET HTTP, ma i carichi dalla cache anche se ho disabilitato la cache in questo modo:Rimuovere la cache interna di UIWebView
[[NSURLCache sharedURLCache] removeAllCachedResponses];
[[NSURLCache sharedURLCache] setDiskCapacity:0];
[[NSURLCache sharedURLCache] setMemoryCapacity:0];
Inizialmente sto caricando un richiesta con cachePolicy cachePolicy:NSURLRequestReturnCacheDataElseLoad
.
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:myURLString] cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:10.0]];
UIWebView
avere una sorta di cache interna. Le pagine già visitate verranno caricate da questa cache interna invece di passare attraverso NSURLCache
e inoltre non è stata inviata alcuna richiesta.
C'è un modo per svuotare la cache interna di UIWebView
? Sto anche ricreando lo UIWebView
ma la cache è ancora lì.
Avete provato la soluzione qui: http://stackoverflow.com/a/14096331/1749367 – helper
Sì, nessun successo con nessuna di queste soluzioni funziona per quello che voglio realizzare. –
Ho trovato una soluzione alternativa: impostare l'attributo Cache-Control nell'intestazione della risposta HTTP su max-age = 0. Quindi una richiesta verrà inviata per la risorsa ogni volta. Un modo per risolverlo potrebbe essere quello di tenere traccia di se un file è stato richiesto prima dall'ultima eliminazione della cache, e impostare max-age su un altro valore (ad es. 3600) la seconda volta che una risorsa viene caricata dopo l'ultima eliminazione. –