iOS UIWebview缓存机制

时间:2016-06-14 09:51:25

标签: javascript ios caching uiwebview

我有一个大量使用UIWebview的应用,我的大多数应用都是网络服务器中的HTML文件。最近发生了一些奇怪的事情,经过一段时间的使用后,UIWebview停止从网上加载HTML(网络服务器通过查看日志没有收到任何HTTP请求)。 UIWebview仍然可以看到HTML,我怀疑UIWebview是从本地cache加载HTML文件。

但是在加载HTML文件后,UIWebview没有在该HTML文件中运行任何javascript,这将发出许多AJAX请求。

我需要手动卸载应用程序并重新安装它以使其再次运行,终止应用程序并重新启动无法帮助。

我想知道这与UIWebview缓存有关,因为每次发生时,应用程序都会使用一段时间(几周)。

以前有人遇到过同样的问题吗?如何解决?

它随机发生,难以复制。

1 个答案:

答案 0 :(得分:1)

为什么不为请求设置缓存策略。我认为这样你可以选择何时从缓存加载以及何时重新加载它。类似下面的代码可能有所帮助。

let url = NSURL (string: yourUrlString);
var cachePolicy: NSURLRequestCachePolicy?
//check if connected to network
if(conected to network){
    cachePolicy = .ReloadIgnoringLocalCacheData
}
else{
    cachePolicy = .ReturnCacheDataDontLoad
}
let request = NSURLRequest(URL: url!, cachePolicy: cachePolicy, timeoutInterval: 15.0)
yourwebView.loadRequest(request)