私の目的は、iOS で UIWebView を使用して Web アプリケーションを構築することです。基本的には、BlackBerry が Webworks に対して行うことを行います。
読み回した後、キャッシュがどのように機能するかがわからないため、次のテストを試しました。
まず、「Hello World」で簡単な Web アプリケーションを作成しました。
アプリケーションのビルドと実行 - 正常に動作しました
次に、login.html を変更しました (これが私の Hello World の名前でした)。私が行った変更は、別のページへのハイパーリンクを使用して Hello World を再配置したことです。
Build&Run を再度実行すると、古いページがまだ表示されます。
それで、どこかにキャッシングがあると思いますか?
次のことを行う方法はありますか?
- すべてのファイルがディスク上にあるため、速度は重要ではないため、キャッシュを無効にしますか?
- アプリケーションを起動するたびにキャッシュをクリアしますか?
誰もこれに遭遇したことがありますか?
ありがとう
私が試した: UIWebviewからキャッシュを削除する方法またはUIWebviewのロックを解除する方法
別の更新 ------
別の簡単なテストを試してみたところ、すべての html、css、js ファイルを含む HTML フォルダーを削除したため、現在はゴミ箱に入れられています。アプリケーションを再度実行し、プロジェクトから html 参照を削除しても、それらはすべて完全に読み込まれます。したがって、すべてがどこかにキャッシュされます。
別の試みとして、私も追加しました:
-(void)dealloc{
self.webView.delegate = nil;
self.webView = nil;
[webView release];
[super dealloc];
}
NativeViewController.m では、これは役に立ちませんでした。
私のアプリケーション コード:`
#import "NativeViewController.h"
@implementation NativeViewController
@synthesize webView;
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"login" ofType:@"html"];
NSData *htmlData = [NSData dataWithContentsOfFile:filePath];
if (htmlData) {
NSBundle *bundle = [NSBundle mainBundle];
NSString *path = [bundle bundlePath];
NSString *fullPath = [NSBundle pathForResource:@"login" ofType:@"html" inDirectory:path];
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:fullPath]]];
}
}
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidUnload {
[self.webView removeFromSuperview];
self.webView.delegate = nil;
self.webView = nil;
}
-(void)webViewDidFinishLoad{
[[NSURLCache sharedURLCahce] removeAllCachedResponses];
}
- (void)dealloc {
[webView release];
[super dealloc];
}
@end
`