How do you clear/flush the WebView cache in a Cocoa app?
In particular, I would like to clear the cache of a local stylesheet.
I have tried the following to no avail:
// Tried this before loadRequest
[[NSURLCache sharedURLCache] removeAllCachedResponses];
// Also tried this before and after loadRequest
[webView.mainFrame reloadFromOrigin];
Even replacing the WebView
with a new one still uses the cached stylesheet.
The other suggested solutions didn't work for the local stylesheet (though they should work for remote resources).
I finally managed to solve this via the resourceLoadDelegate, by explicitly setting the cache policy:
- (NSURLRequest *)webView:(WebView *)sender resource:(id)identifier willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)redirectResponse fromDataSource:(WebDataSource *)dataSource {
request = [NSURLRequest requestWithURL:[request URL] cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:[request timeoutInterval]];
return request;
}
Fun stuff.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With