2011-11-05 45 views
5

我有一个应用程序,这是一个通用的文件管理器。我希望使用QLPreviewController,UIDocumentInteractionController等应用程序中的“Open in ...”功能能够向我的应用程序发送任何文件类型。iOS文档/文件类型关联 - 通配符UTI?

我已经创建了一个文档类型,但是“类型”是否设置为“*”,“public。*”或类似的组合我无法让应用程序显示非特定情况下例如,如果我将UTI更改为com.adobe.pdf)。

在Mac OS X上,可以将应用程序设置为所有文件类型的通用查看器 - 这在iOS上不可行吗?


编辑

通过文档去,我发现只有极少数原始UTI类型,从所有其他继承

public.item 
public.content 
public.database 
public.calendar-event 
public.message 
public.contact 
public.archive 
public.url-name 
public.executable 
com.apple.resolvable 

其中,有不少是明确从未将成为文件的实例。

我可能一直过于雄心勃勃地试图创建一个通配符测试:我尝试过public.item,它使用邮件处理pdf文件。由于文档声明public.item是“物理层次结构的基本类型”,这可能意味着此通配符是,即“public.item = *”

最坏的情况下,我可以添加项目,内容,数据库和档案,并希望最好的。最好的情况下,项目涵盖了一切。

回答

5

public.item适用于目前为止我尝试过的每种类型。

+1

'public.item'也可以匹配像苹果事件创建者代码奇怪的事情,因为我发现,当我收到了随机在OS X 10.6上推出的应用程序的报告。我通过使用public.data来解决问题。 (当然,Apple Events不适用于iOS ...) – Wevah

8

您需要指定功能以及物理层次结构的UTI。对于所有文件(但不包括捆绑包),您可以使用public.data + public.content。对于真正的一切(包括符号链接和文件夹),您可以使用public.item + public.content。

见Dropbox.app是怎么做的:http://www.cocoanetics.com/2013/01/open-in-all-files/

见我对尿路感染的书面记录在这里:http://www.cocoanetics.com/2012/09/fun-with-uti/

+0

要排除bundles/directories/system-symbolic-files,是不是“public.data”够了? –