Надеюсь, я правильно понимаю вашу проблему:
1) загрузить удаленную веб-страницу ... и
2) заменить некоторые удаленные ресурсы файлами в приложении / сборке
правый
Хорошо, я делаю следующее (я использую его для видео из-за ограничения кэширования 5 МБ в Mobile Safari, но я думаю, что любой другой контент DOM должен работать одинаково):
• создать локальную (для компиляции с Xcode) HTML-страницу с тегами стиля, для замены содержимого в приложении / сборке, установленного на скрытый, например ::
<div style="display: none;">
<div id="video">
<video width="614" controls webkit-playsinline>
<source src="myvideo.mp4">
</video>
</div>
</div>
• в том же файле укажите содержимое div, например,
<div id="content"></div>
• (используя jQuery здесь) загрузите фактический контент с удаленного сервера и добавьте свой локальный (импортированный ресурс XCode) к целевому div, например,
<script src="jquery.js"></script>
<script>
$(document).ready(function(){
$("#content").load("http://www.yourserver.com/index-test.html", function(){
$("#video").appendTo($(this).find("#destination"));
});
});
</script>
• перетащите файлы www (index.html / jquery.js / etc ... используйте корневые уровни для тестирования) в проект и подключитесь к цели
• удаленный HTML-файл (здесь расположен по адресу yourserver.com/index-test.html), имеющий
<base href="http://www.yourserver.com/">
• а также пункт назначения, например,
<div id="destination"></div>
• и, наконец, в вашем проекте XCode загрузите локальный HTML-код в веб-представление
self.myWebView = [[UIWebView alloc]init];
NSURL *baseURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]];
NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
NSString *content = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
[self.myWebView loadHTMLString:content baseURL:baseURL];
Работает для меня, лучше всего в сочетании с https://github.com/rnapier/RNCachingURLProtocol, для автономного кэширования. Надеюсь это поможет. F