ios dev - UIWebView无法打开文件夹中的本地文件

时间:2013-09-09 16:08:31

标签: ios objective-c uiwebview

我正在尝试在UIWebView中打开一个文件(index.html)。当文件在根目录中并以这种方式加载时,一切正常:

[_webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"test" ofType:@"html"]isDirectory:NO]]];

但是当我输入inDirectory参数时:

[_webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"test" ofType:@"html" inDirectory:@"files"]]]];

我收到此错误:

  

**由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' * - [NSURL   initFileURLWithPath:]:nil字符串参数'

我已经检查了我的目标,该文件列在“复制捆绑资源”列表中

1 个答案:

答案 0 :(得分:2)

在构建应用程序时,加载到捆绑包中的所有资源都会扁平化为单个目录。

你只需要使用:

NSURL *bundleURL = [[NSBundle mainBundle] URLForResource:@"test" withExtension:@"html"];
NSURLRequest *request = [NSURLRequest requestWithURL:bundleURL];

[self.webView loadRequest:request];

在Xcode中使用以下目录结构(test.html在Resources组中):

enter image description here

如果您在软件包中安装它时查看软件包应用程序,它看起来像:

enter image description here

删除Xcode中的所有“组”或文件夹。 (注意test.html在其他所有内容的根目录中)

底线,当从资源包中加载资源时,请保持简单并使用URLForResource:withExtension: