фонКак открыть хранилище NSURLCache Safari?
Я строю приложение, которое связывает последние веб-страниц, которые вы посетили вместе.
Для этого мне нужно получить HTML для последних URL-адресов, используя Cocoa.
Прямо сейчас, я использую невидимый WebView для этого.
Как я понимаю, если URL-адрес не является в кеше для моего приложения, это удаляет веб-серверы.
То, что я хочу
Шансы высоки, что URL я захватывая уже кэшируются Safari, как уже посетили страницу.
Я хочу, чтобы мое приложение сначала проверяло кеш Safari на URL. Если он есть, он должен просто использовать эти данные. Если нет, он должен попасть на веб-сервер и сохранить страницу в кеше моего приложения.
Я действительно не хочу разбирать файл cache.db из Safari с помощью sqlite3 - я понятия не имею, будет ли этот формат оставаться прежним. Я за чем-то более простым и более высоким уровнем.
То, что я пытался
Я знаю, что вы можете создать свой собственный NSURLCache используя метод initWithMemoryCapacity:diskCapacity:diskPath:
, но я не хочу, чтобы попытаться это указывает на кэш Safari в случае он щурит Safari на написав ему.
Есть ли простой, высокоуровневый способ совместного использования кеша Safari?
UPDATE
Aha. Я только что понял, что может быть способ сделать это, я пропал без вести.
Я мог бы сделать новый экземпляр NSURLCache
с initWithMemoryCapacity:diskCapacity:diskPath:
, направьте его в кэш Safari, а затем указать политику кэша NSURLRequestReturnCacheDataDontLoad
для URL запроса при загрузке страницы.
Если это не удается, я могу просто попробовать загрузить страницу как обычно. Я попробую это и уточню вопрос, когда узнаю больше.
Вздох. Я еще не пробовал, но я уверен, что вы правы. Это будет иметь смысл. –
Альтернативой является то, что Safari сохраняет копии посещенных страниц в Историю, чтобы Spotlight мог их искать. Можете ли вы вытащить то, что вам нужно именно так? –