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

發佈了26 篇原創文章 · 獲贊 12 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章