Загрузка локального HTML в UIWebView на iOS не показывает локальные изображения или стили

У меня проблема с отображением локальных изображений и таблиц стилей css на локальной HTML-странице с помощью UIWebView в приложении для iPad, которое будет использовать iOS 5.

Сама HTML-страница просматривается и хорошо оформлена, и это здорово. Но проблема в том, что там, где должны проходить изображения, есть пустые квадраты, а стили текста или где-либо еще не отображаются.

Я встречал очень похожие вопросы по SO, где люди говорили загружать HTML в представление с помощью baseURL, что я затем сделал, используя ответ на их вопрос. Но образы и стиль все равно не проявились.

NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"htm" inDirectory:@"html_files"];
NSString* htmlString = [NSString stringWithContentsOfFile:htmlFile encoding:NSUTF8StringEncoding error:nil];
NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];
[web loadHTMLString:htmlString baseURL:baseURL];

UIWebView устанавливается с помощью Interface Builder, и у меня это есть в файле .h как @property(nonatomic, retain) IBOutlet UIWebView *web;

В моей папке html_files есть:

  • index.htm
  • img (папка)
  • стиль (папка)

Используя следующий код, в журнале было показано "index.htm", img, style, что говорит мне, что каталоги остаются неизменными, но я все же попытался разместить и затем связать изображения в корне html_files, но все равно ничего.

NSString *htmlPath = [path stringByAppendingPathComponent:@"html_files"];
NSArray *dirContents = [[NSFileManager defaultManager] directoryContentsAtPath:htmlPath];
NSLog(@"%@", dirContents);

А затем в index.htm я добавляю ссылки на изображения типа <img src="img/logo.jpg">

Любые идеи будут очень признательны, спасибо.

РЕДАКТИРОВАТЬ: здесь добавлена ​​ссылка на проект: http://www.filedropper.com/localhtml (это буквально просто UIWebView с файлами HTML, так что ничего большого и беспорядочного)


person Nathan    schedule 03.10.2012    source источник
comment
На этой странице у меня есть 5 разных изображений, а в папке img - 9 изображений.   -  person Nathan    schedule 03.10.2012
comment
для тега img вы используете точное имя изображения из пакета ..? как imageName.jpg   -  person vishy    schedule 03.10.2012
comment
Да, я использую имя изображения пакета. Я загрузил проект (в настоящее время это просто UIWebView и файлы HTML) в filedropper.com/localhtml если вы любезно хотите посмотреть сами, может быть, вы увидите то, чего я не могу   -  person Nathan    schedule 03.10.2012


Ответы (1)


Хорошо, вот ошибки, которые вы сделали, я сказал, просто используйте только имя изображения в теге img, вы используете путь.

В iOS не имеет значения, сколько у вас папок, где бы у вас ни были ресурсы, он просто добавляет все ресурсы в один пакет.

Пример снимка экрана после изменений

Вот ссылка, проверьте, я внес изменения только в index.htm

person vishy    schedule 03.10.2012
comment
Большое спасибо виши. NSLog каталога html_files меня немного смутил, поскольку он все еще показывал структуру папок. Большое спасибо за вашу помощь и ссылку. Пожалуйста, не стесняйтесь оставлять ссылку и изображение, надеюсь, это поможет кому-то другому в будущем. Еще раз спасибо! - person Nathan; 03.10.2012