自定义UTI 注册你的APP所支持的文件类型
之前有整理過關于《根據文件后綴打開APP》的文章 ,請先參考它,然后接下來學習,如何自定UTI。
應用場景:APP 打開本公司自定義格式的文件,特殊的自定義后綴的文件。通過QQ 微信、郵箱等等接受到手機上的特殊文件,在打開時,主動調用自己的APP。
要點:
1. 你要注冊(向iOS/mac系統)申明app能夠打開某種類型的文檔,這樣其他app才可能通過DIC(document interaction interface)把文件轉給你app來打開
2. 注冊就要在plist里聲明: document types(我猜的),然后打開文本模式一看,果然對應了CFBundleDocumentTypes
一般而言一個文檔類型和一個文件類型對應,當然也可以是多個文件類型例如。doc/。docx是word文檔在兩個不同版本下的文件后綴。這樣你可以把這兩個文件類型組合在一個文檔類型中
A uniform type identifier (UTI) is a string that identifies a class of entities with a type. UTIs are typically used to identify the format for files or in-memory data types and to identify the hierarchical layout of directories, volumes or packages
這里有個基本的對照表,文件后綴和UTI的串
https://developer.apple.com/library/mac/#documentation/Miscellaneous/Reference/UTIRef/Articles/System-DeclaredUniformTypeIdentifiers.html
更多的對應可以參考:
Apple’s Uniform Type Identifiers Overview
這里我們使用了一個系統定義的。org。gnu。。。。另外一個是程序定義的UTI,程序定義的UTI需要導出,系統其他程序才能知道
3. 需要為自定義的UtI在plist中申明:
關鍵是說明com.sunsetlakesoftware.molecules.hrUTI 是和.hr后綴文件關聯,且mime類型是 chemical/x-pdb.
這樣一來,在郵件程序中,tap且hold等待彈出候選程序列表,可以打開特定的文件。
當附件被打開,你的app就啟動了。一般而言,至少要在application:didfinishelaunchingwithoptions中處理文件路徑等,看起來就像是文件被copy到你app目錄下,然后打開了:
再看另外一個例子,注釋在其中
<dict><key>CFBundleTypeName</key><string>My File Format</string> //任意定義<key>CFBundleTypeIconFiles</key> //icon圖標資源,當用于顯示此類文件的時候<array><string>MySmallIcon.png</string> //resource in bundle<string>MyLargeIcon.png</string></array><key>LSItemContentTypes</key> //使用了UTI格式的,關聯到文件格式<array><string>com.example.myformat</string> //</array><key>LSHandlerRank</key><string>Owner</string> //非默認,而是owner </dict>也可以通過MIME來指定文件類型
總結
以上是生活随笔為你收集整理的自定义UTI 注册你的APP所支持的文件类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在windows XP运行CISCO72
- 下一篇: 垃圾留言狙击手