2010-08-29 52 views
1

我有一個iPad應用程序,它具有通過UTI和CFBundleDocumentTypes聲明的自定義文件類型。有沒有辦法阻止像Mail和Dropbox這樣的應用程序顯示文件預覽,同時仍然允許「打開在...」選項啓動我的應用程序?我已將UITypeConformsTo和UTTypeTagSpecification設置爲應用程序Info-plist中的自定義值,但其他應用程序仍然使用由我的應用程序創建的自定義擴展預覽文件。我認爲預覽的能力取決於UTTypeTagSpecification(即MIME類型)中的值,但顯然不是。謝謝。防止在iPad上預覽自定義UTI文件類型

回答

0

我發現的唯一解決方案是壓縮文件(例如ZIP)。這將阻止iPad應用程序顯示內容。在聲明自定義文檔類型時,您仍然需要小心。否則,即使應用程序被壓縮,應用程序仍可能嘗試預覽,並最終顯示亂碼。

0

每個Quick Look生成器的Info.plist定義了它可以處理的UTI類型。

例如:/System/Library/QuickLook/Text.qlgenerator/Contents/Info.plist是系統中默認「文本」生成器的Info.plist路徑。

生成器的另外兩個文件夾是/ Library/QuickLook和〜/ Library/QuickLook。

你應該會看到類似這樣的一些線在靠近頂部:

 <key>CFBundleTypeRole</key> 
     <string>QLGenerator</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>public.plain-text</string> 
      <string>public.rtf</string> 
      <string>com.apple.rtfd</string> 
      <string>org.oasis-open.opendocument.text</string> 
      <string>com.apple.property-list</string> 
      <string>public.xml</string> 
     </array> 

各種應用程序的Info.plist文件中定義的文件擴展名屬於哪個類型UTI。操作系統將使用文件擴展名來獲取UTI。

您的自定義UTI /文件擴展名可能與現有定義衝突。這聽起來像是你描述的問題的一個可能原因。

我建議您查看默認值(以及您安裝的程序的導出UTI類型),並確保您的自定義UTI(文件擴展名也是!)確實是100%唯一的。

不要讓它繼承任何東西,或者某些生成器可能會決定它嘗試打開它。