我正在写一个UIWebView的应用程序,它应该显示我在应用程序资源文件夹中的各种HTML文件。在Xcode我的项目概况,这些HTML文件显示如下:iPhone开发:从资源文件夹加载文件
dirA
|---> index.html
|---> a1.html
|---> a2.html
|---> my.css
|---> dirB
|---> b1.html
|---> b2.html
|---> dirC
|---> c1.html
|---> c2.html
其中添加到项目中这样这些资源:
- 经过“复制项目到目的地组文件夹(如果需要)” 。
- 参考类型:默认。
- 文本编码:Unicode(utf-8)。
- 以递归方式为任何添加的文件夹创建组。
在我的HTML链接是相对的,这意味着它们看起来就像这样:
<a href="a1.html">a1</a>
<a href="a2.html">a2</a>
<a href="dirB/b2.html">b2</a>
<a href="dirC/c1.html">c1</a>
为了显示的index.html时,应用程序启动时,我使用下面的代码:
NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
NSURL *url = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];
这工作正常。只要所需的html文件直接位于dirA下,索引文件中的以下链接也可正常工作。如果后面的链接指向子目录中的文件,则didFailLoadWithError
将捕获该情况并报告所请求的文件不存在。
此外,
[webView loadHtmlString:myHtml];
不能成为解决方案的一部分,因为我需要前进和后退按钮在我的网页视图工作。
所以问题是:我如何遵循一个相对链接到我的资源内的子目录中的HTML文件?
我已经遍布了stackoverflow和过去几天试图找出这一个,但我没有遇到这个确切的问题的解决方案的其余管。任何有识之士都会非常非常感谢!
编辑: Yoohoo!我想到了!什么喜悦!以下是我所做的:
- 重新导入我的资源,选择“为所有添加的文件夹创建文件夹引用”而不是“为所有添加的文件夹递归创建组”。
- 指定资源的根目录,例如:
NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" inDirectory:@"dirA"];
是的,谢谢。正如你可以看到我的编辑(原始问题),我自己在几个小时的时间里就发现了这一点。似乎没有“我终于自己想出了” - 位。好吧。我只是给你信贷:-) – thomax 2010-03-26 13:42:13
我想获得相同的结果,但我已经添加了文件夹。无论如何教xcode来组织文件夹之后呢? – amok 2010-09-25 19:44:02