0

我已经注册了我的应用程序以打开所有文档类型,这工作得很好,但我无法让它处理图像,它没有出现在 PhotoAlbum 中,但我的应用程序出现在 safari 中,safari 可以向我发送打开请求以打开某些文件。

任何提示?

这是我的 plist 更改:

<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeName</key>
        <string>PDF Document</string>
        <key>LSHandlerRank</key>
        <string>Default</string>
        <key>CFBundleTypeRole</key>
        <string>Viewer</string>
        <key>LSItemContentTypes</key>
        <array>
            <string>public.content</string>
            <string>public.item</string>
            <string>public.data</string>
            <string>public.image</string>
        </array>
    </dict>
</array>
4

1 回答 1

0

您正在混淆 OSX 和 iOS 密钥。例如,CFBundleTypeRole是 iOS 中未使用的 OSX 密钥。

CFBundleDocumentTypes这是文档中对密钥的一个很好的描述:

CFBundleDocumentTypes

CFBundleDocumentTypes(Array - iOS, OS X) 包含一组字典,这些字典将>一种或多种文档类型与您的应用程序相关联。每个字典称为类型定义字典,并包含用于定义文档类型的键。表 2 列出了这些字典中支持的键。有关指定应用程序支持的类型的更多信息,请参阅“在应用程序的属性列表中存储文档类型信息”。

您应该在CFBundleDocumentTypes数组中为每种文档类型提供一个条目。您目前只有一个名为 PDF 文档的条目。下面的数组LSItemContentTypes实际上是用于一种特定文档类型的各种“扩展”。从文档中阅读此描述:

该键包含一个字符串数组。每个字符串都包含一个定义受支持文件类型的 UTI。必须明确拼写 UTI 字符串,而不是使用 Launch Services 定义的常量之一。例如,为了支持 PNG 文件,您可以在数组中包含字符串“public.png”。使用此键时,还要添加带有相应条目的 NSExportableTypes 键。

总之,您应该在CFBundleDocumentTypes数组中插入一个新的图像类型定义字典。

在此处阅读有关详细信息的所有信息。

于 2013-02-20T10:23:00.337 回答