从本地war文件夹加载html文件

时间:2012-12-10 14:43:07

标签: iphone ios

我有一个网络应用程序,其所有资源都包含在名为“war”的文件夹中。我已将这些资源导入我的xcode项目(通过文件 - >“将文件添加到'我的项目'”)。

现在我的xcode项目看起来像:

MyProject
    |- war
        |- foo.html
    |- AppDelegate.h
    |- AppDelegate.m
    ...

所以现在我尝试加载:

NSBundle *bundle = [NSBundle mainBundle];
NSURL *url = [NSURL fileURLWithPath:[bundle pathForResource:@"foo" ofType:@"html"] isDirectory:NO];
NSURLRequest *req = [NSURLRequest requestWithURL:url];
[self.mWebView loadRequest:req];

我没有得到编译错误,但我的UIWebView是空的。我也得到了webViewDidLoad回调。还有其他方法我们需要加载像这样的本地页面吗?

由于

2 个答案:

答案 0 :(得分:4)

如果它是一个真正的子目录(即文件夹名称显示为蓝色):

enter image description here

然后您可以使用URLForResource:withExtension:subdirectory:

NSURL *url = [[NSBundle mainBundle] URLForResource:@"foo" 
                                     withExtension:@"html"
                                      subdirectory:@"war"];

或者,如果它只是一个“组”(即如果“文件夹”没有显示为蓝色):

enter image description here

然后使用普通的URLForResource:withExtension:

NSURL *url = [[NSBundle mainBundle] URLForResource:@"foo" 
                                     withExtension:@"html"];

答案 1 :(得分:0)

这就是我通常如何加载本地html文件而没有问题。

[webView loadRequest:[NSURLRequest requestWithURL:[[NSBundle mainBundle] URLForResource:self.fileName withExtension:nil]]]

由于你的代码大多看起来对我来说,我认为这可能是另一个问题。我建议为您的webView设置一个委托,并检查其- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error方法以查看是否提供了更多信息。

还要确保您的foo.html是目标成员。