在 UIWebview 中打开 pdf 时出错

Posted

技术标签:

【中文标题】在 UIWebview 中打开 pdf 时出错【英文标题】:Error opening pdf in UIWebview 【发布时间】:2014-01-27 16:00:30 【问题描述】:

我正在尝试在 UIWebview 中显示 pdf,但出现错误。谁能帮我解释为什么这不起作用?错误是:

* 由于未捕获的异常 'NSInvalidArgumentException' 导致应用程序终止,原因:'* -[NSURL initFileURLWithPath:]: nil string parameter'


每个字符串都是正确的,除了 path 似乎是 0 长度,我不知道为什么。

NSArray *docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,  YES);
NSString *documentDirectory = [docPath objectAtIndex:0];

UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(10, 10, 700, 500)];

NSString *path = [[NSBundle mainBundle] pathForResource:@"pdfDoc" ofType:@"pdf" inDirectory:documentDirectory];
NSURL *targetURL = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:targetURL];
[webView loadRequest:request];

[self.view addSubview:webView];

【问题讨论】:

【参考方案1】:

你不能这样做:

NSString *path = [[NSBundle mainBundle] pathForResource:@"pdfDoc" ofType:@"pdf" inDirectory:documentDirectory];

因为NSBundle 只能获取包中文件的路径,而不是文档目录中的路径(因此它返回nil 并且您会收到错误消息)。

如果文件在包中,则仅按名称搜索。如果文件位于文档文件夹中,请获取文件夹的路径并附加名称 (stringByAppendingPathComponent:)。然后使用该路径创建文件 URL。

【讨论】:

太棒了 - 完成了这项工作。谢谢

以上是关于在 UIWebview 中打开 pdf 时出错的主要内容,如果未能解决你的问题,请参考以下文章

对象 - 在UIWebView中打开PDF?

当 UIWebView 打开 PDF 时 webViewDidFinishLoad 未触发

我们可以在iOS上使用UIWebView打开pdf文件吗?

我们可以在iOS上使用UIWebView打开pdf文件吗?

我们可以在 iOS 上使用 UIWebView 打开 pdf 文件吗?

在 swift 4 上单击 UIWebview 上的播放视频时出错