Подтвердить что ты не робот

UIwebview без кеша

Я хочу загрузить веб-просмотр без кеша?

//Create a URL object.
NSURL *url = [NSURL URLWithString:urlAddress];
//URL Request Object
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
//Load the request in the UIWebView.
[kdgWebView loadRequest:requestObj];

Спасибо за помощь.

Жан.

4b9b3361

Ответ 1

Objective-C:

// Remove and disable all URL Cache, but doesn't seem to affect the memory
[[NSURLCache sharedURLCache] removeAllCachedResponses];
[[NSURLCache sharedURLCache] setDiskCapacity:0];
[[NSURLCache sharedURLCache] setMemoryCapacity:0];

Дополнительную информацию вы можете найти в http://blog.techno-barje.fr/post/2010/10/04/UIWebView-secrets-part2-leaks-on-release/

Swift:

NSURLCache.sharedURLCache().removeAllCachedResponses()
NSURLCache.sharedURLCache().diskCapacity = 0
NSURLCache.sharedURLCache().memoryCapacity = 0

Ответ 2

Вы можете изменить политику кэша, используя код:

NSURLRequest *requestObj = [NSURLRequest requestWithURL:url 
                                        cachePolicy:NSURLRequestReloadIgnoringCacheData
                                    timeoutInterval: 10.0]; 

Ответ 3

Я пытаюсь ответить на аналогичный вопрос здесь. Надеюсь, это было полезно для вас! Последнее решение работает для HTML, но не для изображений, css и js, связанных в html.

Как очистить кеш UIWebView?

Ответ 4

Я пробовал все эти решения, но никто из них не работает каждый раз. Моим основным тестом была html-страница с изображением, установленным в качестве фона на странице html. Эта страница и изображение html загружаются локально на моем iPad через метод "sync", который я написал. Единственный способ полностью сохранить кеш reset - это постоянно изменять URL-адрес изображения на странице html, чтобы каждый раз он представлял себе уникальный образ. Например, в моем html:

<body background="image.png?v123">

Итак, каждое изменение страницы мне нужно обновить номер версии:

<body background="image.png?v1234">

и т.д. и т.д. Вы можете изменить URL-адрес в любом случае, он просто должен быть другим.

Ну, я устал от этого. Теперь, когда я загружаю контент локально, я вместо этого динамически меняю имя папки. Поскольку эта папка является родительской папкой, и все мои ссылки относительны, это означает, что мне не нужно каждый раз редактировать мои html файлы. Пока это работает нормально. Я бы хотел, чтобы эти другие методы были согласованными, так как было бы проще просто reset кэша.

Таким образом, в моих запросах его baseURL вызывает мой кеш reset, а не строку запроса на мой url или фоновое изображение, или файл css и т.д. и т.д.

NSString *myURL = @"index.html";
NSURL *baseURL = [NSURL fileURLWithPath:@"FULL_PATH_TO_DOCS/MYFOLDERV123"];
[myTargetWebView loadHTMLString:myURL baseURL:baseURL];