将PDF文档从应用程序下载到本地存储,然后使用iBook打开

时间:2013-07-04 13:03:40

标签: ios objective-c pdf download

我的应用上有一个名为“下载说明pdf”

的html链接

当我点击这个时,我想在本地下载pdf(存储在应用程序中)到iPad / iPhone,然后用iBook打开它。

许多类似的问题都提到了WebView并使用了ViewController,但我已经完成了大部分应用程序,当我使用webview时它会打开一个空白页面并且应用程序无法运行。

这是我的第一个iOS应用程序,之前我没有使用过Objective C,所以在使用ViewController时会感到困惑。

这是我到目前为止的代码:

<a href="howtouse.pdf">download instructions pdf</a>

这会打开pdf,但是全屏会删除任何导航。因此,如果用户想要访问应用程序的其他部分,则必须重新打开不适合用户使用的应用程序!

我正在使用xcode 4.6.3 iPad / iPhone模拟器6.1

我被困在这几个小时,任何帮助都会很棒,谢谢!

2 个答案:

答案 0 :(得分:2)

对于下载部分,请查看一些NSURLConnection个样本

将PDF下载到NSData后,将其写入Documents path,我可以通过这种方式找到它:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder
NSString *pdfPath = [documentsDirectory stringByAppendingPathComponent:@"yourFilename"];

要打开它,请尝试UIDocumentInteractionController this way

答案 1 :(得分:1)

我创建了一个使用UIDocumentInteractionController的示例。我上传到Github你可以在这里下载:

https://github.com/cjimenezpacho/openpdfibooks

基本上是IBAction中的这段代码和所需的委托方法(非常类似于链接sp4rkbr):

NSURL *url = [[NSBundle mainBundle]
URLForResource: @"iPhoneintro" withExtension:@"pdf"];
self.docController = [UIDocumentInteractionController interactionControllerWithURL:url];
self.docController.delegate = self;
[self.docController presentOpenInMenuFromRect:CGRectZero inView:self.view animated:YES];

Apple文档链接:

类别: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIDocumentInteractionController_class/Reference/Reference.html