Web视图在ePub阅读器中显示旧网页

时间:2013-07-27 08:42:24

标签: ios uiwebview epub uiwebviewdelegate

我在webview中加载一本书的xhtml页面。当第一次打开一本书并在webview中加载其页面时,一切正常,但是当我回到主屏幕并加载其他书籍时,本书的封面和索引页面(cover.xhtml& index.xhtml)是显示旧书(已开放的第一本书)。所有书籍都是一样的,即封面和封面。任何书籍的索引页面都显示为第一本书的索引页面。

我尝试了很多东西,例如删除webview并添加回来。

[self loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"about:blank"]]];   ,


[webView loadHTMLString:@"<html><head></head><body></body></html>" baseURL:nil];

没人帮忙。事情是它唯一的问题是封面和索引页面的其余部分都很好。

是因为所有书籍中的文件名相同(cover.xhtml)所以它的缓存并且总是提供相同的内容吗?如果是的话,解决方案是什么。

4 个答案:

答案 0 :(得分:1)

您可以在使用

发出请求时清除缓存
[[NSURLCache sharedURLCache] removeCachedResponseForRequest:NSURLRequest];

如果您想清除整个缓存,可以调用

[[NSURLCache sharedURLCache] removeAllCachedResponses];

答案 1 :(得分:1)

这是因为它从缓存加载数据而不是从请求URL加载数据。

当我不信任系统和服务器以确保我的数据没有被缓存时,我总是使用一个小的解决方法

在请求结束时添加一个简单的垃圾参数,每次都有一个随机值。

例如

而不是加载http://www.example.com/somepage.php

http://www.example.com/somepage.php?junkValue=123456

获取数据

这不是一个完美的解决方案。完美的解决方案是在nsurlrequest对象中检查缓存控制头并相应地获取数据,或禁用请求对象的缓存。

答案 2 :(得分:1)

试试这个,一旦你回到你的主屏幕,在你的退出方法中添加这行代码

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@“about:blank”]]];

我知道这是一个糟糕的黑客,但它会清理你的网页浏览。

答案 3 :(得分:1)

请尝试设置Webview请求的缓存策略,如下所示

[request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];

为NSURLRequest here

查看Apple CachePolicy