我有一个UIWebView
的应用,用于加载本地文件。
我已经创建了一个自定义URL协议,我用它来处理传递给Web视图的数据,并在startLoading中添加了:
[self.client URLProtocol:self didReceiveResponse:response cacheStoragePolicy:NSURLCacheStorageNotAllowed];
同样在启动应用时,我已使用以下代码禁用了缓存:
NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:0 diskCapacity:0 diskPath:nil];
[NSURLCache setSharedURLCache:sharedCache];
sharedCache = nil;
但不幸的是,该死的东西仍然允许缓存本地文件。
当我关闭网页视图并再次打开时,javascript文件不会再通过我的网址协议加载。
我还应该设置什么才能让它发挥作用?
我的目标是始终通过自定义网址协议加载文件,而不仅仅是第一次。
对我来说,startLoading
中的NSURLProtocol
方法不会针对后续请求调用。
答案 0 :(得分:0)
我怀疑问题是UIWebView不知道或不关心底层网络协议有关缓存的内容,因为缓存不是在NSURL级别发生的。您还需要发送/注入假的Cache-control标头,以便WebKit不会在该级别缓存它。