【问题标题】:How do I display a local pdf file in UIWebView?如何在 UIWebView 中显示本地 pdf 文件?
【发布时间】:2012-03-22 06:27:57
【问题描述】:

我是 Objective-C 和 iOS 开发的新手。我无法在 UIWebView 中显示本地 pdf 文件。我正在设置一个数组来保存文件名,然后在 UIWebView 中显示它们。任何帮助将不胜感激!

来自 MasterViewController.m:(设置 pdf 文件名数组)

[mCommands addObject:[[NSDictionary alloc]
                    initWithObjectsAndKeys:@"Break",@"name",@"cmd_break.pdf",@"url",nil]];
[mCommands addObject:[[NSDictionary alloc]
                    initWithObjectsAndKeys:@"Close",@"name",@"cmd_close.pdf",@"url",nil]];

来自 DetailViewController.m:(在 UIWebView 中显示 pdf 文件)

NSString *filename = [self.detailItem objectForKey:@"name"];
NSString *path = [[NSBundle mainBundle] pathForResource:filename ofType:@"pdf"];
NSURL *detailURL = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:detailURL];
[self.detailWebView loadRequest:request];

【问题讨论】:

  • 我真的不敢相信有多少人将 Xcode(IDE)与 Objective-c(语言)混为一谈。
  • 哦,太棒了,也许你可以从你明显占据的象牙塔的高处下来,帮助一个可怜的无知初学者。
  • 首先,有几件事。 #1:您的文件是否真的被复制到应用程序的包中?在 Xcode 中,转到Project->My Target->Build Phases->Copy Bundle Resources。如果您的 PDF 不存在,请将其从项目中拖到该框中。 #2: 请在加载 WevView 之前记录 'path',可能是文件名错误。

标签: iphone objective-c pdf uiwebview


【解决方案1】:

您将 pdf 加载到视图 semse 中的代码是正确的。

但是文件路径可能是错误的。使用时:

[[NSBundle mainBundle] pathForResource:filename ofType:@"pdf"];

它只需要文件名,它会附加类型字符串。所以你可能会得到一个以 cmd_break.pdf.pdf

验证:

NSString *filename = [self.detailItem objectForKey:@"url"];
NSString *path = [[NSBundle mainBundle] pathForResource:filename ofType:@"pdf"];
NSLog(@"%@", path);

是的,正如Richard J. Ross III 指出的那样。您在字典中使用了错误的键。 “name”-key 会给你“Break”,而“url”-key 会给你“cmd_break.pdf”。

【讨论】:

  • 等一下,问题不是他加载的是 'name' 键而不是 'url' 键的值吗?
  • 正确。错过了。已编辑。
  • 感谢你们……这就是问题所在(使用“名称”而不是“网址”)。我还将数组内容更改为不包含文件扩展名。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-26
  • 2012-03-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多