防止在iPad上预览自定义UTI文件类型

时间:2010-08-29 19:55:29

标签: ipad preview uti

我有一个iPad应用程序,其中包含通过UTI和CFBundleDocumentTypes声明的自定义文件类型。有没有办法阻止像Mail和Dropbox这样的应用程序显示文件预览,同时仍允许“打开...”选项启动我的应用程序?我已将UITypeConformsTo和UTTypeTagSpecification设置为应用程序Info-plist中的自定义值,但其他应用程序仍在使用我的应用程序创建的自定义扩展名预览文件。我认为预览的能力取决于UTTypeTagSpecification(即mime-type)中的值,但显然不是。感谢。

2 个答案:

答案 0 :(得分:0)

我找到的唯一解决方案是压缩文件(例如ZIP)。这将阻止iPad应用程序显示内容。在声明自定义文档类型时,您仍需要小心。否则,应用程序可能仍会尝试预览,即使它已被压缩,最终显示出乱码。

答案 1 :(得分: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%唯一。

不要让它继承任何东西,否则某些生成器可能会决定尝试打开它。