2010-11-29 4 views
2

Я новичок в разработке iOS.Загрузка локального файла HTML в приложении навигация

Я пытался найти ответ на свой вопрос, но я не мог, я нашел некоторые связанные ответы, но я не мог решить проблему.

Моя проблема: я создал приложение, которое имеет таблицу, и для каждой строки должен быть URL-адрес, который загружает UIWebView и должен быть загружен при нажатии на строку, но он загружает онлайн-URL такой как @ "http://www.google.com". Но я хочу, чтобы он загружал локальный файл HTML.

Я использовал это для URL:

 azkarDetailViewController.detailURL= 
    [[NSURL alloc] initWithString: 
    [[[azkarData objectAtIndex:indexPath.section] objectAtIndex: 
    indexPath.row] objectForKey:@"url"]]; 

И для каждой строки в таблице я использую:

[AZKAR addObject:[[NSMutableDictionary alloc] initWithObjectsAndKeys:@"THE NAME OF THE ROW",@"name",@"DayandNight.png",@"picture",@"http://www.google.com",@"url",nil]]; 

Поэтому я хочу, чтобы приложение загрузить локальный файл из ресурсов (например, имя файла HTML является «index.html»).

Не могли бы вы помочь мне решить эту проблему?

Большое спасибо ..

ответ

1

При компиляции приложения, на выходе будет «пучок» файлов и каталогов. Фактически вы можете получить доступ к набору через класс NSBundle; статический метод + mainBundle вернет указатель на экземпляр NSBundle, который представляет основной комплект вашего приложения.

Затем вы можете использовать методы -URLForResource:withExtension: и -URLForResource:withExtension:subdirectoryNSBundle (для них требуется iOS 4.0 или более поздняя версия - есть и более старые эквиваленты). Если файл HTML хранится в главном каталоге расслоения (что будет в случае, если вы не создали фактический каталог отличен от группы в вашем комплекте), вы можете найти его URL таким образом:

NSString *myDocumentName = @"index.html"; 
NSURL *documentURL = [[NSBundle mainBundle] URLForResource:myDocumentName extension:Nil]; 

Обратите внимание, что вам необязательно указывать расширение отдельно, если оно уже находится в имени файла.

Примечание: мое объяснение немного упрощено (я предполагаю, что вам не нужно иметь дело с локализациями, иначе есть other issues, о котором вам следует знать в документах).

+0

Большое спасибо за ваш быстрый ответ. Но, как я уже говорил, я новичок в разработке приложений для iOS, и это мое первое приложение, и я слежу за примером для своего приложения. Так вы можете объяснить более подробно? Итак, где я должен поместить ([NSString * myDocumentName .......)? я должен положить его под (- (void) createAzkarData {NSMutableArray * AZKAR;) или другим способом? – 3madi 2010-11-29 01:37:32

1
#if __IPHONE_OS_VERSION_MIN_REQUIRED < 40000 
    // code for iOS below 4.0 
    NSURL *modelURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"WindowsTest" ofType:@"html"]]; 
#else 
    // code for iOS 4.0 ++ 
    NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"WindowsTest" withExtension:@"html"]; 
#endif 
Смежные вопросы