iOS中UIWebView的缓存处理

mac2025-11-19  5

UIWebView请求网页链接的方法:

NSURL *url = [NSURL URLWithString:urlStr]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; [webView loadRequest:request];

NSURLRequest的构造方式有两种:

NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:30]; //和 NSURLRequest *request = [NSURLRequest requestWithURL:url];

cachePolicy是请求的缓存策略,类型为NSURLRequestCachePolicy,[NSURLRequest requestWithURL:]默认设置缓存策略为NSURLRequestUseProtocolCachePolicy,超时时间默认是60s。

typedef NS_ENUM(NSUInteger, NSURLRequestCachePolicy) { //缓存策略根据网页协议中定义的缓存逻辑(如有效期等) NSURLRequestUseProtocolCachePolicy = 0, //忽略本地缓存 NSURLRequestReloadIgnoringLocalCacheData = 1, //忽略本地缓存和远程代理的缓存 NSURLRequestReloadIgnoringLocalAndRemoteCacheData = 4, NSURLRequestReloadIgnoringCacheData = NSURLRequestReloadIgnoringLocalCacheData, //有本地缓存则加载,没有则重新请求 NSURLRequestReturnCacheDataElseLoad = 2, //有本地缓存则加载,没有也不重新请求,类似脱机工作 NSURLRequestReturnCacheDataDontLoad = 3, //只使用原始源的数据 NSURLRequestReloadRevalidatingCacheData = 5, };

清除缓存的方法:

[[NSURLCache sharedURLCache] removeAllCachedResponses]; [[NSURLCache sharedURLCache] setDiskCapacity:0]; [[NSURLCache sharedURLCache] setMemoryCapacity:0];

清除Cookie的方法:

NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; for (NSHTTPCookie *cookie in [storage cookies]) { [storage deleteCookie:cookie]; }

 

最新回复(0)