2011-11-05 8 views
5

Tengo una aplicación que es algo así como un administrador de archivos genérico. Me gustaría que la funcionalidad "Abrir en ..." esté presente en las aplicaciones que usan QLPreviewController, UIDocumentInteractionController, etc. para poder enviar a mi aplicación cualquier tipo de archivo.iOS Documento/Tipo de archivo asociaciones - UTI comodín?

He creado un tipo de documento pero si los "Tipos" están configurados en "*", "public. *", O combinaciones similares No puedo hacer que la aplicación se muestre para casos no específicos (funciona si cambio la UTI a com.adobe.pdf, por ejemplo).

En Mac OS X, se puede configurar una aplicación para que sea un visor genérico de todos los tipos de archivos. ¿Esto no es posible en iOS?


EDITAR

Yendo a través de la documentación, he encontrado que hay sólo un puñado de tipos de UTI primitivos, de la cual todos los demás heredan

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

De estos, muchos son claramente Nunca va a haber instancias de archivos.

Pude haber sido demasiado ambicioso intentando crear una prueba de comodín: probé public.item y funcionó en un archivo pdf desde el correo. Dado que los documentos indican que public.item es el "Tipo de base para la jerarquía física.", Que podría significar este es el comodín, es decir, "public.item = *"

peor de los casos, podía añadir el artículo , contenido, base de datos y archivo y esperamos lo mejor. En el mejor de los casos, el artículo cubre todo.

Respuesta

5

public.item funciona para todos los tipos que he probado hasta ahora.

+1

'public.item' también puede coincidir con cosas extrañas como los códigos de creador de Apple Events, como descubrí cuando Recibí informes de una aplicación mía que se ejecuta al azar en OS X 10.6. Solucioné el problema usando en su lugar public.data. (Por supuesto, las cosas de Apple Events no se aplican a iOS ...) – Wevah

8

Debe especificar tanto una UTI para la jerarquía funcional como física. Para todos los archivos (pero excluyendo paquetes) puede usar public.data + public.content. Para realmente todo (incluidos los enlaces simbólicos y las carpetas) usaría public.item + public.content.

Vea cómo lo hace Dropbox.app: http://www.cocoanetics.com/2013/01/open-in-all-files/

Ver mi valoración crítica sobre las UTI aquí: http://www.cocoanetics.com/2012/09/fun-with-uti/

+0

Para excluir paquetes/directorios/system-symbolic-files, ¿no es suficiente "public.data"? –

Cuestiones relacionadas