我想从我的应用程序中显示的 safari 中获取图像。我必须明智地区分所有缓存图像域,所以在 mac os x12.4 和 safari v10.1 的新更新之前。我从下面的位置获取图像
~/Library/Caches/com.apple.Safari/WebKitCache/Version
例如,我从以下位置获取 google.com 的图像 - :
~/Library/Caches/com.apple.Safari/WebKitCache/Version 9/Records/google.com
在此位置,操作系统按域名文件夹保存图像。但是在更新之后,他们将域更改为一个不同的字符串,就像这样
~/Library/Caches/com.apple.Safari/WebKitCache/Version 9/Records/1A71C22C3069617815FB52ACDEB96918BD33D7DD
在这种情况下,我无法通过域名指定图像。
我尝试了解决此问题的所有可能性,所以任何人都可以让我知道我是否可以按域检索浏览器缓存图像,或者我可以验证哪个图像由哪个域缓存。
我之前得到的 - :
更新后我得到的结果 - :
在此先感谢大家。
最佳答案
似乎 safari 已经更改了 safari 缓存文件的命名约定格式。仅供引用,我们在做同样的事情,我们正在为此寻找解决方法;然后我们得出如下结论 - :
Safari 在以下位置维护其历史数据库 - : ~/Library/Safari/History.db
阅读这个数据库。该数据库有一个名为“history_visits”的表,其中包含触发 url 的时间戳及其唯一 ID
使用此唯一 ID,您将在另一个名为 "history_items"
的表中找到触发的 url根据数据库查找匹配相同时间戳的缓存图片。
如果匹配,那么它可能就是您正在寻找的正确图片。
另一个重要的事情是——: 这不是根据 safari 历史获取准确图像的问题的完整证明解决方案,它只是我们提出的解决方案。
关于objective-c - 如何在 Safari v10.1 中获取 Safari 历史域图像形成缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44039504/