地址路径在xcode中的工作方式



当我在项目中添加文件时,我想在xcode中的UIWebView中加载html5页面,例如:"对于我的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]];

您需要将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,但这就是你的想法。

相关内容

最新更新