Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在ePub reader中显示旧网页的Web视图_Ios_Uiwebview_Epub_Uiwebviewdelegate - Fatal编程技术网

Ios 在ePub reader中显示旧网页的Web视图

Ios 在ePub reader中显示旧网页的Web视图,ios,uiwebview,epub,uiwebviewdelegate,Ios,Uiwebview,Epub,Uiwebviewdelegate,我正在webview中加载一本书的xhtml页面。当我第一次在webview中打开一本书并加载它的页面时,一切正常,但当我回到主屏幕并加载其他书籍时,该书的封面和索引页(cover.xhtml和index.xhtml)显示的是旧书(打开的第一本书)的封面和索引页。所有书籍的封面和索引页都是一样的,即任何一本书的封面和索引页都显示为第一本打开的书的封面和索引页 我尝试了很多方法,比如删除webview并添加回来 [self loadRequest:[NSURLRequest requestWith

我正在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];
[self-loadRequest:[nsurlRequestWithURL:[nsurlUrlWithString:@“关于:空白”]],
[webView loadHTMLString:@”“baseURL:nil];
没人帮忙。问题是它唯一的问题是封面和索引页,其余的页面都很好


是不是因为文件名在所有书籍中都是相同的(cover.xhtml),所以它被缓存并总是给出相同的内容?。如果是,解决办法是什么

您可以在使用

[[NSURLCache sharedURLCache] removeCachedResponseForRequest:NSURLRequest];
如果要清除整个缓存,可以调用

[[NSURLCache sharedURLCache] removeAllCachedResponses];

您可以在使用发出请求时清除缓存

[[NSURLCache sharedURLCache] removeCachedResponseForRequest:NSURLRequest];
如果要清除整个缓存,可以调用

[[NSURLCache sharedURLCache] removeAllCachedResponses];

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

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

在请求末尾添加一个简单的垃圾参数,每次使用一个随机值

比如说

而不是装载

从中提取数据


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

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

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

在请求末尾添加一个简单的垃圾参数,每次使用一个随机值

比如说

而不是装载

从中提取数据


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

尝试此方法,返回主屏幕后,在退出方法中添加这行代码

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@“关于:空白”]]


我知道这是一个糟糕的黑客行为,但它会清理你的网络视图。

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

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@“关于:空白”]]


我知道这是一个糟糕的黑客行为,但它会清理您的webview。

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

[request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];

请查看NSURLRequest的apple缓存策略请尝试设置Webview请求的缓存策略,如下所示:

[request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];

如中所述,为NSURLRequest提供?param=123[随机生成的值]已尝试使用apple CachePolicy

,然后应更改缓存策略<代码>[[NSURLCache sharedURLCache]移除所有缓存响应]在调用读取已经尝试过的数据之前使用此选项,方法是按中所述给出?param=123[随机生成值],然后您应该更改缓存策略<代码>[[NSURLCache sharedURLCache]移除所有缓存响应]在调用读取数据之前使用此选项只需在需要加载新书时取消网络视图并重新创建。只需在需要加载新书时取消网络视图并重新创建。