UIWebView кеш в iOS - PullRequest
       41

UIWebView кеш в iOS

2 голосов
/ 30 января 2012

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

Очистка кэша Safari не помогает. единственный способ очистить кэш UIWebView - это выключить мой iPhone и снова включить его. Закрытие приложения тоже не поможет.

Документация Apple ничего не говорит об этом ... или я что-то упустил. На всякий случай приложение создано с помощью monotouch.

Ответы [ 3 ]

1 голос
/ 07 февраля 2012

Если вы хотите стереть все кэшированные ответы, примерно так будет выглядеть:

[[NSURLCache sharedURLCache] removeAllCachedResponses];
0 голосов
/ 25 января 2013

Я перепробовал все предложения по переполнению стека, и ни одно из них не сработало.Единственный способ заставить его работать и почувствовать, что это надежное решение, - это каждый раз создавать новые html-файлы во временном каталоге (с другим именем каталога - лучше работает Guid) и копировать все связанные изображения, сценарии, CSS, каждый раз в этот временный каталог.

Затем откройте его с помощью объекта NSUrlRequest

string tempdir = Path.Combine(UIController.Common.DataFolder,System.Guid.NewGuid().ToString ());
Directory.CreateDirectory (tempdir);

//-- create your html on the tempdirectory here
//-- copy all the images, and all the css, and js files

UIWebView wv = new UIWebView(new RectangleF(30,30,480,680));
NSUrlRequest req = new NSUrlRequest(new NSUrl (Path.Combine (tempdir,"default.html"), false),NSUrlRequestCachePolicy.ReloadRevalidatingCacheData,10);
wv.LoadFinished += delegate(object sender1, EventArgs e1) 
{
    //delete the tempdirectory 
    Directory.Delete(tempdir); 
};
0 голосов
/ 30 января 2012

Существует кэш view , который показывает растровое изображение последней использованной страницы (как мы видим в Safari), но это не похоже на то, что вы видите (так как для этого требуется перезагрузить устройство) .

Я не замечал такого поведения раньше (никогда его не искал ;-), но следующий ответ выглядит многообещающе.

FWIW, это не то, что относится к MonoTouch.

...