UIDocumentInteractionController -iOS预览、打开文档(doc、pdf等)

UIDocumentInteractionController-iOS预览、打开文档(doc、pdf等)

最近公司一个项目有个需求,要求打印文档或者发送文档到QQ、邮箱等去打印
就这个需求在网上查看了一些相关的文档,发现还真有一个现成可用的类-UIDocumentInteractionController,是iOS很早就出来的一个功能,这是一个被我们完全忽略掉的东西,真的是压根就没听说过,但是它却具有着强大的功能。

强大的文档阅读器,主要功能如下:
  1. 预览文档,包括word文档、excel文档、pdf文档等等
  2. 调用iPhone里第三方的app打开文档
  3. 将文档用系统级分享到各个应用中(包括QQ、微信、邮箱等)
  4. 如果有条件配备支持AirPrint的打印机的话,就可以直接打印文档

用法相当简单(用swift语言实现,OC基本一样):

1、初始化一个UIDocumentInteractionController对象

//测试用的文件Url
let docUrl = Bundle.main.url(forResource: "test1", withExtension: "pdf")
//先初始化一个UIDocumentInteractionController对象(传入相应的文件url(本地和远程都可以))
let documentController = UIDocumentInteractionController(url:docUrl!)

2、本应用内预览文档

//设置代理 --本应用内预览必须要添加代理UIDocumentInteractionControllerDelegate
documentController.delegate = self;

//当前APP打开  需实现协议方法才可以完成预览功能
documentController.presentPreview(animated: true)

//需要实现如下代理方法

public func documentInteractionControllerViewControllerForPreview(_ controller: UIDocumentInteractionController) -> UIViewController
{
    //这个地方需要返回给一个控制器用于展现documentController在其上面,所以我们就返回当前控制器self
    return self
}

3、在其他应用中打开、分享

//第三方打开 手机中安装有可以打开此格式的软件都可以打开
documentController.presentOpenInMenu(from: (sender as! UIButton).frame, in: self.view, animated: true)

over… 差不多就简单介绍到这里啦!

demo已上传到github:文档阅读器demo

你可能感兴趣的:(iOS-Swift,ios,swift,文档,pdf)