日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

自定义UTI 注册你的APP所支持的文件类型

發布時間:2024/1/8 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 自定义UTI 注册你的APP所支持的文件类型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前有整理過關于《根據文件后綴打開APP》的文章 ,請先參考它,然后接下來學習,如何自定UTI。
應用場景:APP 打開本公司自定義格式的文件,特殊的自定義后綴的文件。通過QQ 微信、郵箱等等接受到手機上的特殊文件,在打開時,主動調用自己的APP。

要點:
1. 你要注冊(向iOS/mac系統)申明app能夠打開某種類型的文檔,這樣其他app才可能通過DIC(document interaction interface)把文件轉給你app來打開
2. 注冊就要在plist里聲明: document types(我猜的),然后打開文本模式一看,果然對應了CFBundleDocumentTypes

<key>CFBundleDocumentTypes</key> <array> <dict> <key>CFBundleTypeName</key>文檔類型名稱 <string>pdf</string> <key>LSHandlerRank</key> //是擁有此類型文檔,還是僅用于打開 <string>Default</string> </dict> </array>

一般而言一個文檔類型和一個文件類型對應,當然也可以是多個文件類型例如。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

<key>LSItemContentTypes</key><array><string>com.sunsetlakesoftware.molecules.hr</string> <string>org.gnu.gnu-zip-archive</string></array>

這里我們使用了一個系統定義的。org。gnu。。。。另外一個是程序定義的UTI,程序定義的UTI需要導出,系統其他程序才能知道
3. 需要為自定義的UtI在plist中申明:

<key>UTExportedTypeDeclarations</key> <array><dict><key>UTTypeConformsTo</key><array><string>public.plain-text</string><string>public.text</string></array><key>UTTypeDescription</key><string>Molecules Structure File</string><key>UTTypeIdentifier</key><string>com.sunsetlakesoftware.molecules.hr</string> // 自定義的type identifier<key>UTTypeTagSpecification</key><dict><key>public.filename-extension</key> //關鍵點<string>hr</string><key>public.mime-type</key> //關鍵點<string>chemical/x-pdb</string></dict></dict> </array>

關鍵是說明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所支持的文件类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。