背景
-
我正在构建一个应用程序,它链接最近
你们一起访问过的网页。
-
为此,我需要获取html
对于最近使用cocoa的url。
-
现在,我在用一个隐形的
webview来做这个。
-
据我所知,如果url不是
在我的应用程序的缓存中,这是
正在访问Web服务器。
我想要什么
我抓取的url很可能已经被safari缓存了,因为页面已经被访问过了。
我希望我的应用程序首先检查Safari的缓存中的URL。如果它在那里,它应该只使用这些数据。如果没有,它应该访问web服务器并将页面存储在我的应用程序的缓存中。
我真的不想使用sqlite3解析safari中的cache.db文件-我不知道这种格式是否会保持不变。我在追求更简单更高层次的东西。
我试过的
我知道你可以用这个方法建立自己的nsurlcache
initWithMemoryCapacity:diskCapacity:diskPath:
但我不想试着把这个指向safari缓存,以防它通过写入safari而搞砸safari。
有没有一种简单、高级的共享Safari缓存的方法?
更新
啊哈。我刚刚意识到也许有一种方法可以做到这一点,我已经错过了。
我可以做一个新的例子
NSURLCache
具有
initWithMemoryCapacity:磁盘容量:磁盘路径:
,将其指向safari缓存,然后指定
NSURLRequestReturnCacheDataDontLoad
用于加载页面时的URL请求。
当失败时,我可以试着正常加载页面。当我知道更多的时候,我会尝试这个并更新这个问题。