UIWebView HTML-файл основного пакета локального ресурса
Я попробовал почти все способы загрузки html-файла в UIWebView, который содержит изображения и ресурсы в основном комплекте. Веб-страница всегда загружается, но я никогда не могу заставить изображения отображаться.
NSString *html = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
NSString *htmldata = [NSString stringWithContentsOfFile:html encoding:NSUTF8StringEncoding error:nil];
NSString *path = [[NSBundle mainBundle] bundlePath];
[webView loadHTMLString:htmldata baseURL:[NSURL URLWithString:path]];
HTML-код имеет CSS:
background: url('image.png')
Я также заверил, что файл существует в комплекте, когда приложение запускается другими методами, но все же не повезло. Кто-нибудь видит, что не так с моим кодом???
2 ответа
Вместо загрузки HTML напрямую loadHTMLString
Вы можете сделать так, чтобы веб-представление выполняло работу по загрузке HTML-кода из прилагаемого файла. Таким образом, он должен знать, откуда появился HTML для разрешения относительных ссылок.
Пример:
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]];
[webview loadRequest:[NSURLRequest requestWithURL:url]];
Я не проверял выше, вам может понадобиться inDirectory
пункт о pathForResource
метод. Удачи!
Это старый пост, но я думаю, что способ заставить эту работу изменить следующую строку:
[webView loadHTMLString:htmldata baseURL:[NSURL URLWithString:path]];
чтобы:
[webView loadHTMLString:htmldata baseURL:[NSURL fileURLWithPath:path]];
Метод в комментарии и ответе jimbojw тоже работает, но в моем случае htmldata
не извлекается из файла, но вместо этого находится в памяти.