Немного фона
У меня есть приложение для iPhone с тремя UIWebViews, каждое из которых используется для отображения страниц разного типа. (Контент специально разработан для этой цели, это не настоящие веб-страницы.) С каждым конкретным веб-представлением связаны ссылки. Например, ссылка, подключенная в WV1, может потребоваться загрузить в WV2, потому что это ссылка в стиле WV2. (Веб-просмотры находятся в постраничном UIScrollView, который я использую для прокрутки до загружаемого в данный момент веб-просмотра. Я могу определить, какой URL-адрес загружается в зависимости от его пути.)
Для меня имеет смысл иметь одного делегата UIWebView, который отвечает на все URLRequests (через webView:shouldStartLoadWithRequest:navigationType
) и каким-то образом решает, куда и куда загружать.
HTML-код, который я хочу загрузить в веб-представлении, не извлекается непосредственно со страницы. Я делаю что-то вроде [NSDictionary dictionaryWithContentsOfURL:]
, чтобы получить объект, частью которого является фактический HTML. (Кроме того, это может происходить из сети или локального кэша.)
Вопрос
Мне нужно отменить запрос в одном UIWebView, а затем загрузить некоторые произвольные данные в другой. Как я должен выполнять последующую загрузку, чтобы она обошла мой перехват?
Должен ли я прекратить все перехватывать все NSURLRequest с помощью метода делегата webview, а затем отправить новый NSURLRequest, который фактически будет загружен, в правильный webview? Я думал, что подкласс NSURLRequest, чтобы я мог отличить оригинальные запросы от моих запросов. Но опять же, я не хочу делать прямые NSURLRequests, я хочу получить NSDictionary и использовать одно из его значений в качестве HTML.
Я видел эту статью о фильтрации того, что загружается в UIWebView, но я не думаю, что это именно то, что я хочу.
Я пытаюсь пройти через Обзор системы загрузки URL , но там много чего.