UIDocumentInteractionController-iOS預覽、打開文檔(doc、pdf等)
最近公司一個項目有個需求,要求打印文檔或者發送文檔到QQ、郵箱等去打印
就這個需求在網上查看了一些相關的文檔,發現還真有一個現成可用的類-UIDocumentInteractionController
,是iOS很早就出來的一個功能,這是一個被我們完全忽略掉的東西,真的是壓根就沒聽說過,但是它卻具有着強大的功能。
強大的文檔閱讀器,主要功能如下:
- 預覽文檔,包括word文檔、excel文檔、pdf文檔等等
- 調用iPhone裏第三方的app打開文檔
- 將文檔用系統級分享到各個應用中(包括QQ、微信、郵箱等)
- 如果有條件配備支持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