Приложение IPhone с WebView - перемещение веб файлов в подпапку

Я унаследовал приложение iphone, которое в основном представляет собой веб-просмотр со всеми веб файлами (html/js/css), включенными в качестве ресурсов. Я хочу переместить файлы из корня проекта (где они сейчас), в подпапку (www).

Итак, я создал папку и переместил все мои файлы в нее. В XCode я удалил все из корня (все они были красными и помечены как отсутствующие). Затем я добавил новую папку в проект - все выглядит хорошо.

Затем я проверил внутри " Build Phases в настройках проекта, и те же файлы были там: все мои.js файлы в папке www отображаются как "Скомпилировать источники" (как и раньше из корня), и все изображения и т.д. все они отображаются как "Скопировать ресурсы пакета", как они были раньше.

Поэтому, когда я запускаю приложение на эмуляторе (после его сброса), все работает нормально. Если я изменю HTML, я также увижу обновления. НО, если я каким-либо образом изменю файлы js (добавив оповещения повсюду, удалив все содержимое, что угодно!), То независимо от того, что я делаю, я не вижу изменений - он как будто служит моему старому. js файлы откуда-то, даже когда я снова перезагружаю эмулятор.

Может ли кто-нибудь посоветовать, что делать? Мой код веб-представления ниже, если он имеет значение:

- (void)viewDidLoad
{
 [super viewDidLoad];
 [imageView setBackgroundColor:[UIColor whiteColor]];
 [self setWebView:webView];
 [webView setDelegate:self];
 [webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]isDirectory:NO]]];
}

- (void)didReceiveMemoryWarning
{
 [super didReceiveMemoryWarning];
 // Dispose of any resources that can be recreated.
}

-(void)webViewDidFinishLoad:(UIWebView *)webView {
 imageView.hidden = YES;
}
2 ответа

Кажется, что это работает.

Когда вы добавляете папку/файлы в проект, если вы выбираете Create folder references for any added folders - это не добавляет файлы js в качестве источников, а другие файлы в качестве ресурсов, а вместо этого добавляет всю папку в качестве ресурса ( поэтому сохраняется структура папок).

Затем вам просто нужно сообщить вашему веб-сайту о новом месте для index.html (или что-то еще)

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" inDirectory:@"www]isDirectory:NO]]];

И теперь это работает :)


Одно из решений (хотя и не очень элегантное) может заключаться в том, чтобы обернуть ваши скрипты меткой времени, чтобы избежать кеширования. Предполагая, что ваши скрипты находятся в главном теге:

licensed under cc by-sa 3.0 with attribution.