Делегат подход UIWebView не работает, вы правы! новый ответ:
Правильно, вам нужно идти на один уровень глубже, чтобы поймать NSURLRequest
, исходя из UIWebView
. Вы имеете в виду блог использует NSURLCache
, и я думаю, что это хорошая стартовая точка:
ли вы пытаетесь подкласс NSURLCache, а затем переопределить -(NSURLCacheResponse*) cachedResponseForRequest:(NSURLRequest*) request
Если вы хотите, чтобы избежать запроса вам нужно что-то вернуть (как NSURLCachedResponse
). Вы можете, например, получить изображение, которое статически определено в вашем приложении (возможно, PNG с размером 0,0).
Если вы вернетесь nil
, запрос будет выполнен.
Я использую этот подход, чтобы заставить UIWebView
заполнить локальный кеш. Смотрите мой ответ Детальные об этом здесь:
How to save the content in UIWebView for faster loading on next launch?
Неправильный первый ответ:/
Добавить себя в качестве делегата на UIWebView
(UIWebViewDelegate
).
Для каждого изображения, что UIWebView
попытки загрузки, то delagate получает следующую функцию обратного вызова вызывается:
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
Просто проверить, если запрос связан с изображением, которое вы хотите, чтобы избежать для загрузки.В таком случае просто верните NO
в этот обратный вызов: изображение не будет загружено в UIWebView
.
Используя этот подход, никаких изменений не требуется на стороне сервера.
Проблема состоит в том, что это серия динамически загружаемых страниц, которые имеют контент, основанный на том, что было введено на предыдущих страницах. Таким образом, загрузка их и их связь не является вариантом. –
Тогда я бы использовал фильтрующий прокси - его очень похоже на использование блока объявлений в вашем веб-браузере – sylvanaar
, как бы я мог реализовать это? –