1

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

4

2 回答 2

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% 唯一的。

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

于 2010-12-31T14:31:32.333 回答
0

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

于 2010-09-17T18:40:48.083 回答