【问题标题】:ios dev - UIWebView cant open local files inside a folderios dev - UIWebView 无法打开文件夹内的本地文件
【发布时间】:2013-09-09 16:08:31
【问题描述】:

我正在尝试在 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:]: 零字符串参数'

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

【问题讨论】:

    标签: ios objective-c uiwebview


    【解决方案1】:

    在构建应用程序时,加载到包中的所有资源都会被压缩到一个目录中。

    你只需要使用:

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

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

    如果你在模拟器中安装包应用程序时查看它,它看起来像:

    您在 Xcode 中拥有的任何“组”或文件夹都将被删除。 (注意 test.html 与其他所有内容都在根目录中)

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-05
      • 1970-01-01
      • 2015-07-07
      • 2013-12-05
      • 2019-02-27
      • 2012-08-15
      • 1970-01-01
      相关资源
      最近更新 更多