当我在项目中添加文件时,我想在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,但这就是你的想法。