#iphone #uiwebview #nsurl
#iPhone #uiwebview #nsurl
Вопрос:
Как я могу загрузить локальное изображение на HTML-страницу в UIWebView, которая вызывается с
[self.webView loadHTMLString:htmlSourceCode baseURL:externPageUrl];
Я знаю, что могу получить изображение, изменив baseUrl. Однако в моем случае это невозможно.
Я также пытался сделать это, добавив file://pathToImage/myimage.png
в html, но это не работает без изменения baseUrl.
Есть ли какой-нибудь способ без необходимости обрабатывать shouldStartLoadWithRequest
метод?
Ответ №1:
Просто установите src изображения на имя файла изображения, предполагая, что он находится в той же папке, что и локальный HTML-файл.
Комментарии:
1. и установка для него имени или даже полного пути не работает из-за baseUrl
2. о, хорошо, я понимаю. Я полагаю, что путь к файлу:// правильный. В соответствии с этой страницей вам может потребоваться создать файл: ///users/name/library … Обратите внимание на дополнительную косую черту.
3. Я пробовал это. Я также попробовал / и // и /// и заменил пробелы на и заменил «/» на «//». «File://» работает, но только если я заменю пакет = (
Ответ №2:
Я решил это, загрузив байты изображения непосредственно в html:
//retrieve image data, to embedd into the html as base64
NSURL *imgURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"myImage" ofType:@"png"] isDirectory:NO];
NSData *data = [NSData dataWithContentsOfURL:imgURL];
[htmlContent appendFormat:@"<div class="myCssClass" style="background:url(data:image/png;base64,%@) no-repeat center center;" ></div>",
[data encodeBase64] ];