Простой: просто скопируйте HTML, который вы хотите отобразить, в каталог документов и используйте относительные пути к файлам.
Я только что проверил это, и оно работает. Сначала скопируйте ваши активы в каталог пользовательских документов. Вот только одно изображение в качестве примера. Вы можете скопировать весь каталог и т. Д.
NSURL *documentsDirectory = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
NSURL *imageURL = [documentsDirectory URLByAppendingPathComponent:@"image.gif"];
if (![[NSFileManager defaultManager] fileExistsAtPath:[imageURL path]]) {
NSString *bundleImage = [[NSBundle mainBundle] pathForResource:@"image" ofType:@"gif"];
if (bundleImage) {
[[NSFileManager defaultManager] copyItemAtPath:bundleImage toPath:[imageURL path] error:nil];
}
}
Также скопируйте ваши html-страницы (это просто показывает, как я настроил тест):
NSString *htmlString = @"<html>Here is a picture: <br>"
"<img src=\"image.gif\" height=100 width=100> "
"</html>";
NSURL *mainPageURL = [documentsDirectory URLByAppendingPathComponent:@"index.html"];
NSLog(@"%@", mainPageURL);
[htmlString writeToURL:mainPageURL atomically:YES encoding:NSUTF8StringEncoding error:nil];
Наконец загрузите страницу - работает как брелок.
[webView loadRequest:[NSURLRequest requestWithURL:mainPageURL]];
Предупреждение о запуске этого в iOS Simulator . URL отличается на Mac. Короче говоря, вы должны использовать формат @"file:/.../"
и заменить все косые черты /
на двойные косые черты //
, а все пробелы на %20
. Подробнее об этом в этом вопросе.