iOS - отображать контент из файла ресурсов html или удаленной веб-страницы в веб-просмотре - PullRequest
15 голосов
/ 20 декабря 2011

Я новичок в iOS. Я хочу иметь функцию, которая загружает содержимое из локального файла ресурсов HTML или веб-страницы в зависимости от того, что указано в константе. Как мне это сделать? Например, если я передам file: // ... в функцию или http: // ..., он должен отобразиться соответственно.

1 Ответ

35 голосов
/ 20 декабря 2011

Вы можете легко загружать веб-страницы следующим образом:

NSURLRequest *request = [NSURLRequest requestWithURL:
   [NSURL URLWithString:@"http://stackoverflow.com"]] ;

[webView loadRequest:request] ;

Для локальных файлов это зависит от расположения файла на вашем устройстве: Для файлов в вашем основном комплекте (= ваш проект) вы можете использовать ту же функцию loadRequest , но построить путь по-другому:

NSString *localFilePath = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"] ;
NSURLRequest *localRequest = [NSURLRequest requestWithURL:
  [NSURL fileURLWithPath:localFilePath]] ;

[webView loadRequest:localRequest] ;

и если вы хотите загрузить html-строку в ваш webView:

NSString *bundlePath = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:bundlePath];

NSString *htmlString = [bundlePath pathForResource:@"index" ofType:@"html"] ;
[webView loadHTMLString:htmlString baseURL:baseURL];

и если ваш html-файл находится в папке документов вашего приложения (например, загруженный html-файл):

NSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask ,YES );
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"index.html"];
NSURLRequest *documentsRequest = [NSURLRequest requestWithURL:
  [NSURL fileURLWithPath:path]] ;

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