【问题标题】:Prevent Preview of Custom UTI File Types on iPad阻止在 iPad 上预览自定义 UTI 文件类型
【发布时间】:2011-04-05 12:15:42
【问题描述】:

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

【问题讨论】:

    标签: ipad preview uti


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-17
        相关资源
        最近更新 更多