我已经注册了我的应用程序以打开所有文档类型,这工作得很好,但我不能让它与图像一起工作,它不会出现在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>
答案 0 :(得分: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
数组中。
详细了解详情here。