1

状況: ネイティブの IOS5 アプリが Web サイトを FTP からローカル ストレージにダウンロードし、ダウンロードしたページが Web ビューに表示されます。FTP サーバーに新しいバージョンがある場合、アプリは自動的に新しいバージョンをダウンロードし、ローカル ストレージの古いバージョンを上書きします。これで、webview が新しいバージョンをロードするはずです。

問題: 新しいバージョンが古いバージョンを上書きすると、一部のイメージの名前が同じになります。これで、webview はすべての画像をキャッシュからファイル システムから読み込みます。-.-

質問: webview がキャッシュからすべての画像をロードするのを防ぐか、キャッシュ全体をクリアする可能性はありますか? 私ができないのは、ダウンロードしたページのhtmlまたはjsを変更することです。したがって、すべての画像の背後にタイムスタンプを追加するアプローチ (test.img?timestamp=23444) は実行できません。変更は、IOS アプリで行う必要があります。

すでに試したが失敗したこと:

[[NSURLCache sharedURLCache] removeAllCachedResponses];

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

NSURL *url = [NSURL fileURLWithPath:[ftpPath stringByAppendingPathComponent:@"index.html"]];

NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:1.0];
[[NSURLCache sharedURLCache] removeCachedResponseForRequest: urlRequest];

[webView stopLoading];
[webView loadRequest:urlRequest];
[webView reload];
webView.delegate = self;

助けてくれてありがとう、私はそれを理解していません。

シア・ナンド

4

0 に答える 0