【问题标题】:Loading Local PDF File Into WebView将本地 PDF 文件加载到 WebView
【发布时间】:2011-09-21 15:10:49
【问题描述】:

我正在尝试将以下功能放入我正在编写的 iOS 应用程序中:

  • 在 XCode 中项目的资源文件夹中发送一组 PDF
  • 将 PDF 复制到应用目录
  • 在网络视图中打开 PDF。

据我所知,前两个步骤工作正常(复制操作后我使用 FileManager 检查 fileExistsAtPath)。 但是,webview 是空的,并且出错(“请求的 URL 在服务器上不存在”)。 我的文件打开代码如下:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                          NSUserDomainMask, YES);
NSString *localDocumentsDirectory = [paths objectAtIndex:0];
NSString *pdfFileName = @"example.pdf";
NSString *localDocumentsDirectoryPdfFilePath = [localDocumentsDirectory  
                                     stringByAppendingPathComponent:pdfFileName];
pdfUrl = [NSURL fileURLWithPath:localDocumentsDirectoryPdfFilePath];
[webView loadRequest:[NSURLRequestWithURL:pdfUrl];

这在模拟器上可以正常工作,但在设备上不起作用

【问题讨论】:

  • 设备区分大小写。确保文件名完全匹配。
  • 安娜,谢谢!我正要说我已经检查过了。但是当我回去再次查看时,.pdf 实际上是 .PDF 如果您将此添加为答案,我会将其标记为已解决。再次感谢。

标签: ios uiwebview


【解决方案1】:

您确定不想让UIDocumentInteractionController 为您完成繁重的工作吗?

UIDocumentInteractionController *dc = [UIDocumentInteractionController interactionControllerWithURL:fileURL];
dc.delegate = self;
[dc presentPreviewAnimated:YES];

【讨论】:

  • 感谢您的建议。我以前没见过,我试试看。
  • 很好的答案!为 Swift 3 添加答案
【解决方案2】:

正如上面 Anna Karenina 所说,“设备区分大小写。确保文件名完全匹配”

【讨论】:

    【解决方案3】:

    bshirley 建议 UIDocumentInteractionController 是展示 PDF 的绝佳选择。最初我尝试使用第 3 方 JSQWebViewController,但在模拟器上运行时,设备上出现空白屏幕。 UIDocumentInteractionController 非常适合我!对于 Swift,您可以这样做:

    let interactionController = UIDocumentInteractionController(url: fileURL)
    interactionController.delegate = self
    interactionController.presentPreview(animated: true)
    

    并实现委托方法:

    // Mark: UIDocumentInteractionControllerDelegate
    func documentInteractionControllerViewControllerForPreview(_ controller: UIDocumentInteractionController) -> UIViewController {
        return UIApplication.shared.keyWindow!.rootViewController!
    }
    

    【讨论】:

      猜你喜欢
      • 2021-12-27
      • 1970-01-01
      • 2017-06-24
      • 1970-01-01
      • 2012-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-16
      相关资源
      最近更新 更多