Поведение политики кэширования iOS UIWebView

Я использую UIWebview и загружаю в него NSMutableURLRequest:

NSMutableURLRequest* req = [NSMutableURLRequest requestWithURL:initialURL cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:10.0];
[_webview loadRequest:req];

Эти запросы загружаются, когда внутри другого UIWebview (своего рода стартовая страница) щелкается ссылка.

При просмотре сетевого трафика с помощью WireShark изначально перехватывается 150 запросов. Вернувшись на стартовую страницу и снова открыв ссылку, вы должны снова сообщить о 150 запросах, но это не так. Захвачено всего около 100 запросов. Не хватает некоторых файлов CSS, PNG, шрифтов, JSON и XML.

После закрытия всего приложения, как и ожидалось, фиксируется 150 запросов. Похоже, что сам UIWebView кэширует некоторые данные и игнорирует установленную политику кэширования.

Есть ли способ заставить UIWebView загружать ресурсы в соответствии с их политикой?


person ilmgb    schedule 28.06.2013    source источник
comment
Вы решили это? Я застрял с той же проблемой.   -  person Niklas Berglund    schedule 01.10.2013
comment
Нет. Не имел успеха. Моими последними словами в документации были: Приложение кэширования не может быть реализовано в 100% кеше файловой системы, поскольку поведение кэширования UIWebView непоследовательно. Нам потребуется политика кэширования, для которой задано значение NSURLRequestIgnoringLocalCacheData, но это, похоже, обходит некоторые запросы с помощью собственного неконтролируемого кеша.   -  person ilmgb    schedule 27.01.2014
comment
согласованный. То же самое. Я создал связанный вопрос stackoverflow.com/questions/19113682/ И тоже пришел к выводу, что это невозможно. Мой обходной путь заключался в том, чтобы попросить пользователя перезапустить приложение, когда содержимое было обновлено и его необходимо перезагрузить.   -  person Niklas Berglund    schedule 27.01.2014