最近做的項(xiàng)目需要下載一個(gè)授權(quán)書讓用戶打印簽名之后拍照上傳到服務(wù)器,其實(shí)下載文件沒什么難度,大家都應(yīng)該知道,網(wǎng)上一搜一大堆,但是下載下來的文件放在app里面的,不像安卓那樣用戶可以自己找到對(duì)應(yīng)的路徑,雖然用戶不知道路徑,但是我們程序是知道路徑的,現(xiàn)在唯一的問題就是要把下載的這個(gè)文件導(dǎo)出(或者用弄出來更為貼切),最開始想直接調(diào)用系統(tǒng)瀏覽器下載文件然后系統(tǒng)瀏覽器會(huì)默認(rèn)打開并且瀏覽器下方有自帶的分享的那個(gè)按鈕,但是總是出現(xiàn)莫名其妙的問題,所以最終還是放棄了,在弄了大概一天之后終于找到方法了,也還是調(diào)系統(tǒng)的那個(gè)分享如下圖:

只不過現(xiàn)在不調(diào)用系統(tǒng)瀏覽器了而是在自己的應(yīng)用程序里面彈出這個(gè)分享的選擇框讓用戶選擇分享的渠道了,主要是用到了 UIDocumentInteractionController 具體做法如下:
1,?添加委托方法如下圖:

?2,初始化controller如下圖:

?其中,documentController.UTI是我們需要分享出去的文件的類型,pdf就用 com.adobe.pdf,其他的類型可以參考https://developer.apple.com/library/mac/documentation/Miscellaneous/Reference/UTIRef/Articles/System-DeclaredUniformTypeIdentifiers.html
參數(shù) self.filePath 是我們下載下來將要分享的文件的路徑,這個(gè)路徑用戶不知道,但是我們的程序是可以獲取到的。?
3,實(shí)現(xiàn)委托方法,其實(shí)如果只是和我一樣實(shí)現(xiàn)簡單的把文件分享出去的話,那么就不用實(shí)現(xiàn)委托方法了,如果還需要實(shí)現(xiàn)其他功能的或者效果的話,那就在響應(yīng)的委托方法里寫吧。
4,?最終效果圖如下:

?然后選擇相應(yīng)的工具,比如QQ或者微信(這兩個(gè)鬼幾本每人都會(huì)有)就可以分享出去了,分享出去的是一個(gè)pdf,這樣也就實(shí)現(xiàn)了最終的功能了。