在webview中禁用/清除自动缓存...

时间:2015-02-21 10:03:38

标签: ios iphone webview

我为iOS创建了一个应用。在这个应用程序中,我有一个与我的主页链接的webview。但是:总有相同的内容,就像应用程序的第一次启动一样。当我在主页或其中的任何链接更改内容时,我的iOS设备上的内容无法更改。也许它保存在缓存中?注意:虽然我在主页上更改了某些内容,但webview中始终存在相同的内容。我认为这是缓存?!

如何禁用缓存?或者更好的是,缓存应该自动清除,例如在应用程序启动时。

有人可以帮帮我吗?

这是我在ViewContoller.m中的代码

#import "ViewController.h"
@implementation ViewController
-(IBAction)refresh:(id)sender; {

    NSURL *url=[NSURL URLWithString: @"http://examle.com"]; NSURLRequest * requestURL=[NSURLRequest requestWithURL:url]; [_site loadRequest:requestURL];

}
- (void)viewDidLoad {

    [self refresh:self];

    NSString *path = [[NSBundle mainBundle] pathForResource:@"Plan" ofType:@"pdf"];
    NSURL *url = [NSURL fileURLWithPath:path];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [_ImageInWebView loadRequest:request];
    [_ImageInWebView setScalesPageToFit:YES];

    path = [[NSBundle mainBundle] pathForResource:@"Book" ofType:@"pdf"];
    url = [NSURL fileURLWithPath:path];
    request = [NSURLRequest requestWithURL:url];
    [_PDFInWebView loadRequest:request];
    [_PDFInWebView setScalesPageToFit:YES];

    [super viewDidLoad];

    _myBotton.layer.borderWidth =2.0f;
    _myBotton.layer.borderColor = [[UIColor redColor]CGColor];
}

1 个答案:

答案 0 :(得分:1)

我是iOS developer,我建议您不要完全禁用缓存,因为它会对您的应用的性能产生负面影响。您可以首先在应用程序中使用此代码配置缓存限制:     DidFinishLaunchingWithOptions:

- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{   
int cacheSizeMemory = 4*1024*1024; // 4MB
int cacheSizeDisk = 32*1024*1024; // 32MB
NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:cacheSizeMemory diskCapacity:cacheSizeDisk diskPath:@"nsurlcache"];
[NSURLCache setSharedURLCache:sharedCache];

// ... other launching code
}

然后在需要清除缓存时使用命令:

[[NSURLCache sharedURLCache] removeAllCachedResponses] .