在xCode iOS中使用超文本

时间:2011-10-14 15:37:28

标签: xcode http ios5

我想为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>

感谢Caleb给我正确答案..

我已按如下方式更改了我的webView 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 个答案:

答案 0 :(得分:1)

当然 - 只需使用UIWebView即可显示您的HTML页面。使用相对URL链接页面。

更新:我在您发布的代码中看到的一个问题是您的网址不正确。你有一个这样的文件网址:file://page2.html。这是不正确的 - 如果你想要一个相对于主机根的网址,你可以使用:file:///page2.html。该URL省略了主机,这意味着应该使用与当前页面相同的主机。如果要使URL相对于主机和当前页面的目录,请不要使用整个方案:page2.html。所以你的锚标签看起来像:

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

另一件需要考虑的事情是你可能不需要打扰NSFileHandle。只需将根页面的数据直接加载到字符串中:

NSString *htmlString = [NSString stringWithContentsOfFile:path encoding: NSUTF8StringEncoding error:nil];