Я хотел бы поддержать базовую аутентификацию HTTP в своем UIWebView.
В настоящий момент я отменяю запросы в
webView:shouldStartLoadWithRequest:navigationType:
затем обработайте их в моем собственном NSURLConnectionDelegate, чтобы проверить и предоставить учетные данные, если это необходимо. Затем я использую loadData:MIMEType:textEncodingName:baseURL:
для представления HTML в веб-представлении. Это отлично подходит для любых URL-адресов, переданных делегату.
Моя проблема заключается в том, что делегат никогда не вызывается для внедренных элементов, таких как изображения, файлы JavaScript или CSS. Поэтому, если у меня есть HTML-страница, которая ссылается на изображение, которое защищено базовой аутентификацией, это изображение нельзя загрузить должным образом. Кроме того, webView:didFinishLoad:
никогда не вызывается, потому что веб-представление не может полностью загрузить страницу.
Я проверил этот случай с Terra, сторонним браузером, доступным в App Store, и может полностью справиться с этой ситуацией. Я думаю, что можно было бы решить это, предоставив свой собственный NSURLProtocol, но это кажется слишком сложным. Что мне не хватает?