UIWebView не загружает изображения из URL, относящегося к протоколу

  1. Создайте приложение с UIWebView, которое откроет веб-страницу со стилями и изображениями, связанными с протоколом, такими как <img src="//example.com/image.png"> (примеры для http или https).

  2. Переопределить процесс загрузки страницы через ваш пользовательский NSURLConnection вот так.

Результат: изображения не будут отображаться! Хотя Safari и другие браузеры показывают их правильно...

1 ответ

Я проверил страницу, открытую в WebView, и увидел там странные запросы. Они выглядели как обычные URL-адреса, но со схемой applewebdata, например applewebdata://art-u1.infcdn.net/articles_uploads/2/2586/thumb/3Dtouch%20Main-665x.png, Ура! Он не знает "базовую" схему для относительного URL //art-u1.infcdn.net/articles_uploads/2/2586/thumb/3Dtouch%20Main-665x.png и дает это, что фальшивая схема Apple. Итак... проблема здесь:

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    [m_webView loadData:webdata
               MIMEType:@"text/html"
       textEncodingName:@"UTF-8"
                baseURL:nil]; /// WTF!
}

Решение: просто сохраните исходный URL-адрес m_currentPageUrl при запуске запроса, а затем передать его туда, где он должен быть.:)

Другие вопросы по тегам