如何支持具有动态类型标识符但具有特定扩展名的文件?

时间:2012-10-15 21:49:13

标签: ios uti

我希望我的应用支持现有文件类型的“Open In ..”功能。

但是,此文件类型没有UTI。

我在终端中为它运行 mdls ,结果如下:

kMDItemContentType             = "dyn.ah62d4rv4ge80c25t"

kMDItemContentTypeTree         = (
    "public.data",
    "public.item"
)

鉴于这些信息,我加入了我的plist:

<key>CFBundleDocumentTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeExtensions</key>
            <array>
                <string>extension</string>
            </array>
            <key>LSHandlerRank</key>
            <string>Alternate</string>
            <key>CFBundleTypeRole</key>
            <string>Viewer</string>
            <key>LSItemContentTypes</key>
            <array>
                <string>public.data</string>
                <string>public.item</string>
            </array>
        </dict>
    </array>

然而,这似乎忽略了“扩展”并为任何数据文件启用“Open In ..”。

有没有办法阻止这种情况?

1 个答案:

答案 0 :(得分:1)

您可以在Info.plist中定义UTI。如果这是您自己创建的扩展并将其置于“导出的类型UTI”下,请进行一次。如果它是针对已知类型的文件但是UTI不为人所知,则可以将其放在Info.plist的“导入类型UTI”部分下。在任何一种情况下,您现在都可以在“文档类型”部分中引用此UTI。