当前位置:  开发笔记 > 后端 > 正文

在iPhone上的Safari中打开PDF

如何解决《在iPhone上的Safari中打开PDF》经验,为你挑选了1个好方法。

是否可以从Safari中的网站打开PDF以将其保存到本地磁盘?



1> davbryn..:

您可以使用NSURL类将pdf文件下载到文档目录,从而无需在Safari中打开它(并随后终止您自己的应用程序).

UIWebView使得显示外部PDF和本地文件(只需指向正确的文件路径)非常简单,因此您甚至可以将PDF下载到文档文件夹,然后在以后的本地缓存中显示它.

在下面添加了一些示例代码

对于一个更简单的示例,您可能会发现这对您的应用来说是可以接受的; 这会将文件下载到您的文档文件夹但使用阻塞函数(initWithContentsOfURL),因此您可能会遇到大文件/慢速连接的问题:

(此代码应该是您所需要的,但您可能希望创建一个函数来处理此步骤/处理内存/检查错误等)

//Grab the file from the URL

NSData *pdfData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://www.website.com/doc1.pdf"]];

// Put the data into a file in your Documents folder

NSString *docFolder = [[NSString alloc] initWithString:[[[[NSBundle mainBundle] resourcePath] stringByDeletingLastPathComponent] stringByAppendingPathComponent:@"Documents"]];

NSString *filePath = [resourceDocPath stringByAppendingPathComponent:@"doc1.pdf"];

[pdfData writeToFile:filePath atomically:YES];

要为您提供构建的基本示例,以下代码足以在Webview中的Documents文件夹中显示PDF文件:

-(void)viewDidLoad
{
  NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
  NSString *documentsDirectory = [paths objectAtIndex:0];
  NSString *pdfPath = [documentsDirectory stringByAppendingPathComponent:@"doc.pdf"];

// ...

  webView.scalesPageToFit = YES;
  webView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);

  [webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:pdfPath isDirectory:NO]]];

}

如果您想直接从网站(而不是本地文件)显示PDF,那么您可以pdfPath包含该文件的完整URL.

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有