我的目标是在iOS上使用UIWebView构建一个Web应用程序,基本上是做BlackBerry为Webworks做的事情。
阅读后,我不确定缓存是如何工作的,所以我尝试了以下测试:
创建简单的Web应用程序,开始使用“Hello World”。
Build&应用程序 - 工作正常
然后更改了login.html(这就是我的hello world被称为)我所做的更改是我用另一个页面的超链接获得了hello world。
当我再次构建和运行时,仍会显示旧页面。
所以我假设某处有缓存?
无论如何最好做以下/什么?
有没有人遇到过这个?
由于
我试过了: How to delete the cache from UIWebview or dealloc UIWebview
另一次更新------
尝试了另一个简单的测试,我删除了我的HTML文件夹,其中包含所有html,css,js文件,因此它现在处于垃圾箱中。再次运行应用程序并从项目中删除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
`
答案 0 :(得分:1)
Yes..I encountered the same problem..
I solved it by adding the below statement in didFinishLaunchingWithOptions method of AppDelegate class
[[NSURLCache sharedURLCache] removeAllCachedResponses];
答案 1 :(得分:1)
试试这个
if ([htmlData length]==0) {
//no data
}
如果数据的长度为0,则不会加载数据。 在其他情况下,即使您将从项目中删除html文件,它也会在模拟器中存在,除非您不重置它。
希望它有所帮助。