地址路径如何在xcode中工作

时间:2012-10-06 23:43:04

标签: objective-c ios xcode4

我想在xcode中的UIWebView中加载html5页面,当我在项目中添加文件时,例如:“for my html5:

我有css文件夹我有javascript文件我有图像,我的文件夹结构如下:

CSS / 的JavaScript / 图像/

当我在xcode中添加这些文件夹并运行程序时,xcode无法获取地址,它可以加载html页面,但是没有任何图片,javascript和css,因为它们在其他文件夹中,我知道,当我把所有文件放在一起不在单独的文件夹中一切正常但我希望在我的xcode中有真正的文件夹结构(我不想使用组)请你帮帮我

例如

这里有效

   NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"about.html" ofType:nil]]; 

但是当我在

这样的文件夹中添加时
 NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"test/about.html" ofType:nil]];

它起作用的链接,如何在xcode中修复此路径问题

当我运行about.html时,如果所有css,javascript和图像都位于about文件夹中,则所有内容都在xcode中运行

但是当我将它们放在单独的文件夹中时,无法加载css / javascript和图像

请你给我一些提示

提前致谢!

编辑::

 NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"page1.html" ofType:nil]];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];

我想使用类似这样的文件夹:test /

[NSBundle mainBundle]pathForResource:@"test/page1.html" ofType:nil]];

1 个答案:

答案 0 :(得分:1)

您需要将UIWebView实例的baseURL设置为主包中包含其内容的目录的URL,并且您的html链接必须是相对的。

以下代码是一种基本方法,因为我的内容位于主要包的根目录中。

//find my html file
NSString *htmlFilePath = [[NSBundle mainBundle] pathForResource:@"htmlfile-to-load" ofType:@"html"];
//load it into an NSData
NSData *htmlData = [NSData dataWithContentsOfFile:htmlFilePath];
//get the URL of the bundles resource directory
NSURL *baseURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] resourcePath] isDirectory:YES];
//load tableView
[self.webView loadData:htmlData MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:baseURL];

您可能需要以不同的方式获得baseURL,但这就是主意。