2012-08-22 26 views
10

WebViewキャッシュをCocoaアプリでクリア/フラッシュするにはどうすればよいですか?CocoaでWebViewキャッシュをクリアするにはどうすればよいですか?

特に、私はローカルスタイルシートのキャッシュをクリアしたいと思います。

私は無駄に次のことを試してみました:

// Tried this before loadRequest 
[[NSURLCache sharedURLCache] removeAllCachedResponses]; 

// Also tried this before and after loadRequest 
[webView.mainFrame reloadFromOrigin]; 

はそれでも、キャッシュされたスタイルシートを使用して新しいものとWebViewを交換します。

+0

この記事を見てくださいhttp://stackoverflow.com/a/5606703/1578508 – lukaswelte

+0

@lukaswelteそこには何も働いていません。 – hpique

答えて

10

を見てみましょう。

私は最終的に明示的にキャッシュポリシーを設定することにより、resourceLoadDelegateを経由してこの問題を解決するために管理:

- (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; 
} 

楽しいものを。

+0

ええ、それを書いていただきありがとう – aneuryzm

+0

これは私のために働いているようです。 OSX 10.10.3。 – mattsven

+0

これは10.12でも私にとってはうまくいかなかった。これまでに私が見つけた解決策は、リンクするのではなく、ローカルのスタイルシートを埋め込むことでした。 – Brett

0

は(彼らはリモートリソースのために働く必要がありますが)、他の提案の解決策は、ローカルスタイルシートのために動作しませんでしたNSURLCache Class Reference.

- (id)initWithMemoryCapacity:(NSUInteger)memoryCapacity diskCapacity:(NSUInteger)diskCapacity diskPath:(NSString *)path 
//set memoryCapacity and diskCapacity to 0 bytes and diskPath to nil 

NSURLCache *Cache = [[NSURLCache alloc] initWithMemoryCapacity:0 diskCapacity:0 diskPath:nil]; 
[NSURLCache setSharedURLCache:Cache]; 
+0

面白いですが、うまくいかないようです。ローカルスタイルシートのキャッシュがまだ読み込まれています。 – hpique

関連する問題