Загрузка локального HTML-файла в приложение на основе навигации - PullRequest
2 голосов
/ 29 ноября 2010

Я новичок в разработке для iOS.

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

Моя проблема в том, что я создал приложение, в котором есть таблица, и для каждой строки должен быть 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»).

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

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

Ответы [ 2 ]

1 голос
/ 02 февраля 2011
#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
1 голос
/ 29 ноября 2010

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...