Я пытаюсь загрузить HTML-файл в мой UIWebView, но он не будет работать. Вот этап: у меня есть папка с именем html_files в моем проекте. Затем я создал webView в конструкторе интерфейсов и назначил ему выход в viewController. Это код, который я использую для добавления файла HTML:
-(void)viewDidLoad
{
NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"sample" ofType:@"html" inDirectory:@"html_files"];
NSData *htmlData = [NSData dataWithContentsOfFile:htmlFile];
[webView loadData:htmlData MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:[NSURL URLWithString:@""]];
[super viewDidLoad];
}
Это не будет работать, и UIWebView пуст. Буду признателен за помощь.
ios
objective-c
iphone
cocoa-touch
uiwebview
madcoderz
источник
источник
РЕДАКТИРОВАТЬ 2016-05-27 -
loadRequest
выставляет «универсальную уязвимость межсайтового скриптинга». Убедитесь, что у вас есть каждый актив, который вы загружаете. Если вы загрузите плохой скрипт, он может загрузить все, что захочет.Если вам нужны относительные ссылки для локальной работы, используйте это:
Пакет будет искать все подкаталоги проекта, чтобы найти
my.html
. (структура каталогов выравнивается во время сборки)Если
my.html
есть тэг<img src="some.png">
, то webView загрузитсяsome.png
из вашего проекта.источник
этим вы можете загрузить html-файл, который находится в вашем проекте Assets (bundle) в webView.
может быть, это полезно для вас.
источник
Я думаю, что вам нужно
allocate
и начать свойwebview
первый ::источник
Простой фрагмент кода копирования-вставки:
Примечание:
Убедитесь, что членство в html-файле проверено, иначе будет выдано следующее исключение: -
Завершение приложения из-за необработанного исключения
'NSInvalidArgumentException', reason: '*** -[NSURL initFileURLWithPath:isDirectory:]: nil string parameter'
источник
Для Swift 3 и Swift 4:
источник
источник
Может быть, ваш HTML-файл не поддерживает кодировку UTF-8, потому что тот же код работает для меня.
Или вы можете также эти строки кода:
источник
Вот способ работы HTML-файла с Jquery.
Вы можете использовать любые запросы для вызова HTML-файла в вашем UIWebview
источник
Убедитесь, что «html_files» является каталогом в основном комплекте вашего приложения, а не просто группой в XCode.
источник
Новый способ сделать это с помощью Swift. UIWebView больше не существует, и WKWebView - это новый класс для загрузки веб-страниц, который обеспечивает функции Safari для веб-представления.
источник
источник
Это может быть поздно, но если файл от
pathForResource
isnil
вы должны добавить его вBuild Phases > Copy Bundle Resources
.источник
Вот Свифт 3:
источник
источник
В Swift 2.0 ответ @ user478681 может выглядеть так:
источник
Поместите все файлы (html и ресурсы) в каталог (для моего «руководства»). Затем перетащите каталог в XCode через «Вспомогательные файлы». Вам следует проверить параметры «Копировать элементы при необходимости» и «Создать ссылки на папки». Далее напишите простой код:
Внимание
@"manual/index"
, руководство - это название моего каталога! Это все !!!! Извините за мой плохой английский...================================================== =====================
Привет, Коста-Рика Ponga los archivos (html y demás recursos) en un Directorio (руководство пользователя), luego, arrastre y suelte en XCode, sobre «Файлы поддержки». Используется debe seleccionar las opciones «Копировать элементы при необходимости» y «Создать ссылки на папки».
Presta atención a
@"manual/index"
, инструкция es el nombre de mi Directorio !!источник
Когда ваш проект станет больше, вам может понадобиться некоторая структура, чтобы ваша HTML-страница могла ссылаться на файлы, расположенные в подпапках.
Предполагая, что вы перетаскиваете свою
html_files
папку в Xcode и выбираете опцию Создать ссылки на папку , следующий код Swift гарантирует, чтоWKWebView
поддерживает также результирующую структуру папок:Это означает, что если ваш
sample.html
файл содержит<img src="subfolder/myimage.jpg">
тег, файл изображенияmyimage.jpg
вsubfolder
также будет загружен и отображен.Кредиты: https://stackoverflow.com/a/8436281/4769344
источник