在打開一些文件時,常常能夠看到有在XXXAPP中打開,例如使用照片查看器查看圖片,或者是經過QQ、微信分享之類的功能。那麼這個功能是怎麼實現的呢,其實很是簡單,只須要在 Info.plist
文件中進行相關的配置便可在文件分享頁面看到本身APP的圖標了。html
首先咱們要先了解一下UTI,由於網上能夠搜到的資源實在是比較少,怕本身忘記仍是先記錄一下。bash
UTI是蘋果公司提供的統一類型標識符,用於對文件類型進行識別。因此只有咱們在配置了相關的屬性後,才能讓APP識別對應的文件類型,讓本身顯示在文件的分享界面。微信
咱們能夠看到,蘋果公司已經爲咱們提供了不少預設的文件類型,基本咱們經常使用的文件類型都有涉及,例如圖片,視頻,PDF等。具體能夠進入蘋果的開發者文檔查看一共提供了哪些預設,咱們須要用到的是表格中 Identifier
類目的字段來表示對應UTI。 developer.apple.com/library/arc…app
之前實現這個功能須要到 Info.plist
文件中進行編輯,如今只須要到 project
的 info
選項卡中的 DocumentTypes
進行配置便可,有圖形界面比較友好。ui
name
和想要打開文件的對應 UTI
CFBundleTypeRole
並設置爲 Editor
LSHandlerRank
並設置爲 Owner
實現自定義 UTI
須要到 DocumentTypes
下方的 Exported UTIs
中設置。url
Description
中設置簡介Identifier
中設置 UTI
標識符Conforms To
中設置 UTI
繼承的類型UTTypeTagSpecification
並設置類型爲 Dictionary
public.filename-extension
並設置爲 Array
item
並將內容設置爲要識別的文件後綴便可既然從外部分享了文件到APP,或者用APP打開了外部文件,那麼APP應該在哪裏獲取文件並進行處理呢?spa
答案是在 APPDelegate.m
中的方法code
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(nonnull NSDictionary<NSString *,id> *)options
複製代碼
寫在這裏便可,本地文件經過 url
傳進來。orm