在本地保存PDF文件,并能够在应用程序之外查看它

时间:2016-11-14 15:42:56

标签: ios objective-c pdf

我可以选择从互联网上下载PDF文件,然后在应用程序之外查看它?

目前我正在下载并在UIWebView中显示它,但我希望能够将其下载到其他地方。

NSURL *yourURL = [NSURL URLWithString:self.currentInventoryOfFixtures.pdf.url];
NSURLRequest *request = [NSURLRequest requestWithURL:yourURL];
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

NSURL *documentsURL = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
        documentsURL = [documentsURL URLByAppendingPathComponent:@"file.pdf"];

[data writeToURL:documentsURL atomically:YES];

我正在考虑使用UIActivityController并让用户可以通过他的电子邮件地址发送它。

1 个答案:

答案 0 :(得分:0)

下载PDF文件并拥有此文件的路径后,您可以这样使用UIActivityViewController:

let fileSaved = downloadedFilePath() //Already Downloaded File Path

if let data = NSData(contentsOfFile: fileSaved) {
    let dataToShare = [data]
    let activityViewController = UIActivityViewController(activityItems: dataToShare, applicationActivities: nil)

    activityViewController.completionWithItemsHandler = {(string: String?, result: Bool, items: [AnyObject]?, error:NSError?) -> Void in
        print("Completed")
    }

    if #available(iOS 9.0, *) {
        activityViewController.excludedActivityTypes = [
            UIActivityTypePostToFacebook,
            UIActivityTypePostToTwitter,
            UIActivityTypePostToWeibo,
            UIActivityTypeAssignToContact,
            UIActivityTypePostToFlickr,
            UIActivityTypePostToVimeo,
            UIActivityTypePostToTencentWeibo,
            UIActivityTypeCopyToPasteboard
        ]
    }
    self.presentViewController(activityViewController, animated: true, completion: nil)
}