2013-09-05 4 views
4

У меня есть приложение Phonegap, где мне нужно в какой-то момент удалить html-кеш, потому что я обновил изображения в своем приложении.Очистка кэша UIWebView на ios

Я попытался это:

[[NSURLCache sharedURLCache] removeAllCachedResponses]; 
[[NSURLCache sharedURLCache] setDiskCapacity:0]; 
[[NSURLCache sharedURLCache] setMemoryCapacity:0]; 

Вызывается в плагин через JavaScript, то я делаю:

location.reload(true) 

Но я все еще вижу один и тот же образ, который, кажется, в кэше.

Есть ли другой способ сделать это? Я могу сказать пользователю выйти из приложения и убить его и перезапустить его после.

Спасибо!

+0

вы можете Пожалуйста, сообщите нам, какой вариант Cordova вы используете? У нас возникает проблема, когда UIWEBVIEW очищает кеши, как только приложение выходит. Поэтому, когда я запускаю приложение «Следующее время с отключенным WIFI». Изображение отсутствует. [См. Наш запрос здесь] (http://stackoverflow.com/questions/19446317/ios-phonegap-application-ignoring-cache-headers-and-not-caching-images) – abksharma

+0

Я думаю, что это поведение ios для очистки память после закрытия приложения. – arlg

ответ

0

Что вы можете попробовать, чтобы полностью удалить каталог кэша в вашем приложении, например, при первом запуске приложения

0

Вы можете иметь систему URL управления версиями для изображений. Как я уже говорил здесь.

http://www.abksharma.in/2013/10/caching-using-javascript-versioning.html

запрос изображения ниже URL Param.

http://s.wordpress.org/screenshots/3.5/ss5-dfw.gif?1 
http://web-sniffer.net/ 
Above is truly cached image with below headers 

Для данных мы можем использовать ниже.

How to Enable ajax request caching for semi dynamic data (ie JSON)?

0

Вы можете просто решить эту проблему путем добавления метки времени после url.Then вы можете убедиться, что вы запрашиваете URL каждый раз отличается.

Просто так: http://www.demo.com/xxxx?t=timestamp.

Javascript код так же, как это:

var url = 'xxxx/xxx?timestamp=' + Date.now(); 
0

Ни один из них не помог мне.

Я боялся, что мне придётся прибегать к созданию уникальных имен файлов и очистке, когда это будет сделано.

Это отлично работает.

<img src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAeu 
... snip data .... 
YII="> 

How to display Base64 images in HTML?

Смежные вопросы