Как ограничить UIWebview для загрузки изображений? - PullRequest
2 голосов
/ 01 мая 2011

Как я могу запретить UIWebView не загружать изображения любого типа?

С уважением, Джон

1 Ответ

0 голосов
/ 01 мая 2011

Я могу думать о двух направлениях прямо сейчас:

1. NSURLProtocol подкласс

Подкласс и зарегистрируйте NSURLProtocol для перехвата http-запросов, а для URL-адресов, заканчивающихся известными расширениями изображений, просто не выполняйте запрос, просто возвращайте пустую строку в качестве тела. Это подвержено ошибкам, например:

<img src="http://foobar.com/deliverImage.php?id=400&size=lager" />

действительно для запроса ресурсов изображения, и URL ничего не намекает. Конечно, вы можете пойти еще дальше и загрузить или, по крайней мере, запустить запрос и перехватить полученные заголовки и проверить возвращенный тип mime или даже тело файла.

2. Разбор и фильтрация HTML перед рендерингом

Второе решение немного проще: Загрузите html не напрямую в веб-просмотр, а вместо этого используйте NSURLConnection или ASIHTTPRequest, чтобы получить страницу. Теперь вы можете проанализировать его и заменить содержимое атрибута src всех тегов img.

Тем не менее, это не помешает загрузке изображений, например, css для фона.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...