状況: ネイティブの 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;
助けてくれてありがとう、私はそれを理解していません。
シア・ナンド