IOS - отображение содержимого из файла ресурсов html или удаленной веб-страницы в веб-просмотре

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

Ответы

Ответ 1

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

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] ;