Отключить UIWebView DiskImageCache
При загрузке документов, содержащих изображения (например, файл Microsoft Word docx ), UIWebView всегда будет кэшировать изображения, когда он получает предупреждение о памяти, независимо от политики кэша.
Ниже приведен пример фрагмента кода:
- Используйте Adobe Reader для открытия PDF-файла из собственного приложения с помощью WebViewController
- UIWebView и определить словарь
- звук в веб-браузере не работает должным образом в моем iPad
- Почему UIWebView не обновляет текст после того, как ширина столбца и пробел заданы с помощью javascript?
- Удалить выделение серых теней из ввода html на iOS
NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:1024 * 1024 diskCapacity:0 diskPath:[NSTemporaryDirectory() stringByAppendingPathComponent:@"URLCache"]]; [NSURLCache setSharedURLCache:sharedCache]; NSURLRequest* req = [NSURLRequest requestWithURL: [NSURL URLWithString:@"http://www.its.swinburne.edu.au/about/projects/templates/TechnicalSpecificationTemplatev1.1-[ProjectName]-[ver]-[YYYYMMDD].docx"] cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:10];
В этих обстоятельствах при возникновении предупреждения о памяти новая папка создается в каталоге tmp приложения, обычно называемом DiskImageCache-random_suffix, и все изображения в открытом документе сохраняются здесь.
После того, как UIWebView загрузит новый запрос, если я позвоню
[sharedCache removeAllCachedResponses];
эти временные изображения удаляются.
Единственный способ предотвратить кеширование изображений – вызвать
[NSClassFromString(@"WebCache") performSelector:@selector(setDisabled:) withObject:[NSNumber numberWithBool:YES]];
но это означает использование частного API.
Есть ли «дружественный Apple» способ достичь этого?
- UIWebView метод webViewDidLoadFinish не вызывается
- Продолжайте проигрывать cookie php session в UIWebView
- Автоматическая прокрутка, когда contentEditable / designMode в UIWebView
- Как очистить UIWebView
- SVG в uiWebView - в быстрой
- Прямой полный экран видео html5, когда вы начинаете играть в UIWebview
- setDefaultCredential не работает для UIWebView в iOS 7, но отлично работает в предыдущих версиях iOS
- Файлы UIWebView и Richtext
One Solution collect form web for “Отключить UIWebView DiskImageCache”
Я понял это после просмотра WebKit «недокументированных» предпочтений. При следующей настройке можно отключить DiskImageCache для всего срока службы приложения:
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"WebKitDiskImageCacheEnabled"]; [[NSUserDefaults standardUserDefaults] synchronize];