Как правильно выполнять аутентификацию в UIWebView?

Я хотел бы поддерживать базовую аутентификацию HTTP в моем UIWebView.

На данный момент я отменяю запросы в

webView: shouldStartLoadWithRequest: navigationType: , а затем обрабатываю их в моем собственном NSURLConnectionDelegate для проверки и предоставления учетных данных при необходимости. Затем я использую loadData: MIMEType: textEncodingName: baseURL: для представления HTML в веб-представлении. Это отлично работает для любых URL-адресов, передаваемых делегату.

Моя проблема в том, что делегат никогда не вызывается для встроенных элементов, таких как изображения, файлы JavaScript или CSS.Поэтому, если у меня есть HTML-страница, которая ссылается на изображение, защищенное базовой аутентификацией, это изображение не может быть загружено должным образом. Кроме того, webView: didFinishLoad: никогда не вызывается, потому что веб-представление не может полностью загрузить страницу.

Я проверил этот случай с Terra, сторонним браузером, доступным в App Store, и он может полностью справиться с этой ситуацией. Я думаю, что можно было бы решить эту проблему, предоставив свой собственный NSURLProtocol, но это кажется слишком сложным. Что мне не хватает?

19
задан Nag 25 January 2012 в 09:43
поделиться