Использование гипертекста в xCode iOS - PullRequest
1 голос
/ 14 октября 2011

Я хотел бы создать набор страниц справки для приложения для iOS, и кажется логичным иметь гипертекстовое оглавление.

Возможно ли это, и если да, то как мне обернуть ссылки на страницы в OBj-C?

Спасибо ..

Я добавляю код, где я застрял. Я использую пример Apple TransWeb в качестве базы ..

- (void)viewDidLoad
{
    NSString *path = [[NSBundle mainBundle] pathForResource:@"page1" ofType:@"html"];
    NSFileHandle *readHandle = [NSFileHandle fileHandleForReadingAtPath:path];      
    NSString *htmlString = [[NSString alloc] initWithData: 
                              [readHandle readDataToEndOfFile] encoding:NSUTF8StringEncoding];


    [self.webView loadHTMLString:htmlString baseURL:nil];

Так я настроил ссылки в html-файлах.

<html>
<p>
Located in the Sierra Nevada foothills of <a href = "file://page2.html">California</a> 
        in the Sierra Nevada ...........
</p>

Спасибо Калебу за правильный ответ.

Я изменил свой веб-запрос loadRequest следующим образом:

[super viewDidLoad];
    [webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"page1" ofType:@"html"]isDirectory:NO]]];

и изменил html-файл следующим образом:

<a href = "page2.html">California</a> 

1 Ответ

1 голос
/ 14 октября 2011

Конечно - просто используйте UIWebView для отображения ваших HTML-страниц.Используйте относительные URL для ссылки между страницами.

Обновление: Одна проблема, которую я вижу в размещенном вами коде, заключается в том, что ваш URL неверен.У вас есть файл с таким URL: file://page2.html.Это неверно - если вам нужен URL, относящийся к корню хоста, вы можете использовать: file:///page2.html.Этот URL пропускает хост, что подразумевает использование того же хоста, что и текущая страница.Если вы хотите, чтобы URL относился как к хосту, так и к каталогу текущей страницы, не используйте всю схему: page2.html.Таким образом, ваш тег привязки может выглядеть так:

<a href = "page2.html">California</a>

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

NSString *htmlString = [NSString stringWithContentsOfFile:path encoding: NSUTF8StringEncoding error:nil];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...