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