有没有办法查询 HTML5 应用程序缓存的内容?
我正在编写一个使用大量缓存 Web 内容的 iOS 应用程序。在应用离线时加载给定页面之前,我想检查该页面是否存在于缓存中。如果没有,我会通知用户他们必须在线才能看到该内容;如果是这样,我会继续加载它。
现在,iOS 有自己的 URL 缓存系统,我最初只是假设我可以这样检查缓存的内容:
if ([[NSURLCache sharedURLCache] cachedResponseForRequest:myRequest] != nil) {
// go ahead and load the page
}
else {
// notify the user that the content isn't available
}
傻我。似乎 iOS 的缓存和 HTML5 的缓存是不相关的: -cachedResponseForRequest: 对任何请求都返回 nil,即使我可以看到 URL 在 HTML5 应用程序缓存中(使用 Safari Web 调试器)。
那么,有什么方法可以查询 HTML5 应用程序缓存的内容吗?答案是使用 Objective-C 代码还是 Javascript 并不重要,因为我总是可以从 Objective-C 执行相关的 JS。