Фон
Я создаю приложение, которое связывает последние
веб-страницы, которые вы посетили вместе.
Для этого мне нужно получить HTML
для последних URL-адресов с использованием какао.
Прямо сейчас я использую невидимку
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 при загрузке страницы.
Когда это не удается, я могу просто попытаться загрузить страницу как обычно. Я попробую это и обновлю вопрос, когда узнаю больше.