Похоже, вы загружаете HTML-код из вашего пакета. Это означает, что все дополнительные файлы (.js, .css и любые медиа-файлы) также должны присутствовать в вашем комплекте. Поэтому первое, что нужно проверить, - это заглянуть внутрь содержимого вашего исполняемого файла и убедиться, что файлы js и т. Д. Включены.
Если это выглядит нормально, то следует проверить, ссылаются ли файлы html, js или css на контент через относительные или абсолютные URL-адреса. Если в веб-контенте есть ссылка на абсолютный путь, то UIWebView будет пытаться загружать этот контент каждый раз, чтобы он работал только при наличии сетевого соединения. Если путь относительный, то он будет искать в комплекте, чтобы увидеть, существует ли такой файл.
Когда вы включили html и контент в файл проекта XCode, вы, вероятно, перетащили файл (ы) в боковую панель проекта и спросили: «Рекурсивно ли создавать группы для любых добавленных папок» или «Создать ссылки на папки» для любых добавленных папок. "
По умолчанию это первый, который означает, что XCode создает желтую папку в вашем проекте, но он игнорирует иерархию каталогов на диске, когда придет время для создания выходного пакета. Если вы выберете второй вариант, то папка будет синего цвета, и если вы посмотрите в выходной пакет, то увидите, что вся иерархия папок была реплицирована.
Первый работает для простых веб-страниц, где все находится на одном уровне папок, и вы можете использовать метод, который вы перечислили выше, чтобы загрузить его. Второй случай работает лучше, если ваша веб-страница сложная и ссылается на содержимое в подпапках; в этом случае вам необходимо загрузить веб-страницы по относительному пути (скажем, в папке «веб-страницы»):
NSString *path = [[NSBundle mainBundle]
pathForResource:@"index" ofType:@"html"
inDirectory:@"webpages"];
Последнее, что нужно проверить, это наличие каких-либо BASE-тегов в html-файле. Это способ указать адрес или цель по умолчанию для всех ссылок на странице, но он может испортить ссылки веб-просмотра.