項(xiàng)目中經(jīng)常遇到這種需求:通過微信、QQ或其他軟件接收到一個(gè)Word、PDF格式的文件,需要傳遞到我們的APP中。如下圖所示。那么,怎樣實(shí)現(xiàn)這個(gè)功能能,跟我走~~~

一、需要傳遞的文件類型分為兩類:
????1、已知類型(例如后綴名為doc、PDF等文件)
????2、自定義類型(自己生成的特定格式的文件)
二、方法:
????1)已知類型文件的傳遞
在plist文件中按下圖所示配置(這里以PDF文件為例)

????參數(shù)說明:
? ??????Document Type Name:文檔的類型名稱(自定義輸入)
? ??????Handler rank:字符串類型,包含Owner,Default,Alternate,None四個(gè)可 ? ? ? ? ?選值,指定對(duì)于某種類型的優(yōu)先權(quán)級(jí)別,而Launcher Service會(huì)根據(jù)這個(gè)優(yōu)先級(jí)別來排列顯示的App的順序。優(yōu)先級(jí)別從高到低依次是Owner,Alternate,Default。None表示不接受這種類型。
? ??????Document Content Type UTIs:文件類型的UTI ,數(shù)組類型,包含UTI字符串,指定我們的應(yīng)用程序所有可以識(shí)別的類型集合。通過官方文檔查詢文件對(duì)應(yīng)的值:developer.apple.com/library/mac/#documentation/Miscellaneous/Reference/UTIRef/Articles/System-DeclaredUniformTypeIdentifiers.html

?2)自定義文件類型
? ? 因?yàn)樽远x類型官方?jīng)]有對(duì)應(yīng)的Document Content Type UTIs,所以需要我們?cè)诔绦蛑惺謩?dòng)添加支持的類型!
?????2.1)在plist文件中配置如下參數(shù):

????????????參數(shù)說明:
????????????public.filename-extension:這里填寫你自定義文件的擴(kuò)展名。
????????????identifier:不重復(fù)的id.可以使用自己的app的bundle id
????????2.2)添加類型支持

以上步驟就是添加我們的APP支持的文件類型。
在APPdelegate中調(diào)用下面的方法就可以獲取導(dǎo)入進(jìn)來的文件。然后存到你想存的本地目錄就可以了
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation