1

当我在项目中添加文件时,我想在 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]];
4

1 回答 1

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,但这就是想法。

于 2012-10-06T23:49:15.720 回答