OC_實如今其餘APP中打開與UTI

簡述

在打開一些文件時,常常能夠看到有在XXXAPP中打開,例如使用照片查看器查看圖片,或者是經過QQ、微信分享之類的功能。那麼這個功能是怎麼實現的呢,其實很是簡單,只須要在 Info.plist 文件中進行相關的配置便可在文件分享頁面看到本身APP的圖標了。html

UTI

首先咱們要先了解一下UTI,由於網上能夠搜到的資源實在是比較少,怕本身忘記仍是先記錄一下。bash

UTI是蘋果公司提供的統一類型標識符,用於對文件類型進行識別。因此只有咱們在配置了相關的屬性後,才能讓APP識別對應的文件類型,讓本身顯示在文件的分享界面。微信

咱們能夠看到,蘋果公司已經爲咱們提供了不少預設的文件類型,基本咱們經常使用的文件類型都有涉及,例如圖片,視頻,PDF等。具體能夠進入蘋果的開發者文檔查看一共提供了哪些預設,咱們須要用到的是表格中 Identifier 類目的字段來表示對應UTI。 developer.apple.com/library/arc…app

具體操做

預設類型

之前實現這個功能須要到 Info.plist 文件中進行編輯,如今只須要到 projectinfo 選項卡中的 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打開了外部文件,那麼APP應該在哪裏獲取文件並進行處理呢?spa

答案是在 APPDelegate.m 中的方法code

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(nonnull NSDictionary<NSString *,id> *)options
複製代碼

寫在這裏便可,本地文件經過 url 傳進來。orm

相關文章
相關標籤/搜索