我有一个网络应用程序,其所有资源都包含在名为“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回调。还有其他方法我们需要加载像这样的本地页面吗?
由于
答案 0 :(得分:4)
如果它是一个真正的子目录(即文件夹名称显示为蓝色):
然后您可以使用URLForResource:withExtension:subdirectory:
:
NSURL *url = [[NSBundle mainBundle] URLForResource:@"foo"
withExtension:@"html"
subdirectory:@"war"];
或者,如果它只是一个“组”(即如果“文件夹”没有显示为蓝色):
然后使用普通的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
是目标成员。