0

我有一个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;

但不幸的是,该死的东西仍然允许缓存本地文件。

当我关闭 Web 视图并再次打开它时,不会通过我的 url 协议再次加载 javascript 文件。

我还应该设置什么让它工作?

我的目标是始终通过自定义 url 协议加载文件,而不仅仅是第一次。

对我来说,后续请求不会调用startLoadingin 方法。NSURLProtocol

4

1 回答 1

0

我怀疑问题是 UIWebView 不知道也不关心底层网络协议对缓存的描述,因为缓存不是在 NSURL 级别发生的。您还需要发送/注入虚假的 Cache-control 标头,以便 WebKit 不会在该级别缓存它。

于 2016-05-08T02:39:36.950 回答