ios - La aplicación se muestra en el menú "Abrir en..." como "Copiar en MyApp"
cocoa cfbundledocumenttypes (4)
Recientemente, estaba trabajando para mostrar mi aplicación en el menú "Abrir en ..." al abrir archivos adjuntos de correo personalizados (digamos que extensión-archivo es xyz
, y he declarado una application/xyz
tipo mime personalizada). Seguí la guía en este sitio:
https://developer.apple.com/library/ios/qa/qa1587/_index.html
y mi aplicación ahora se muestra entre todas las demás aplicaciones, cuando toco en el adjunto correspondiente. El problema está en la descripción en mi aplicación. En lugar de mostrar su nombre ( MyApp
), se muestra como Copy to MyApp
. ¿Hay alguna manera de hacer que la descripción de mi aplicación no contenga Copy to
palabras?
Actualización, aquí están las pantallas de información de mi aplicación:
Asegúrate de establecer el LSHandlerRank
en tu .plist
en Owner
Owner
indica que la suya es la aplicación nativa que crea y abre archivos de este tipo.
Actualizar Intente configurar CFBundleTypeRole
en el Viewer
[...] La función "Visor" para su tipo de documento, [...] significa que su aplicación puede abrir y leer un formato de archivo en particular, pero no puede guardar en este formato de archivo. Publicar en MacOSX Guru Site
Podría imaginar que no se le permite editar los archivos reales que están adjuntos a un correo electrónico de todos modos.
CFBundleTypeRole no funciona con iOS. El nombre del menú es simplemente depende de LSHandlerRank.
Aquí está el resultado en mi prueba.
Owner: Copy to [MyApp]
Alternate, Default: Import with [MyApp]
None: No appearance
(tested in iOS 10.3.1)
El uso adicional se detalla en la referencia de CoreFoundationKeys.
Si desea usar un nombre de menú personalizado, puede lograr esto con la extensión Compartir como dijo @Dale.
Sé que esta es una pregunta bastante antigua, pero si configura LSSupportsOpeningDocumentsInPlace en true en su Info.plist, y luego maneja adecuadamente los resultados, iOS mostrará "Abrir en" en lugar de "Copiar a" siempre que la aplicación de origen apoya esto
Mira aquí:
y aquí:
https://developer.apple.com/documentation/uikit/uiapplicationopenurloptionsopeninplacekey
y aquí:
https://developer.apple.com/documentation/foundation/nsurl/1417051-startaccessingsecurityscopedreso
Actualizar
Tenga en cuenta que veo "Abrir en" cuando examino un archivo de mi tipo de archivo desde la aplicación Archivos de iOS. En Dropbox, veo "Copiar a". Supongo que la aplicación Archivos establece una configuración que Dropbox no hace cuando se muestra la hoja "Abrir en". ¿Ha intentado abrir uno de sus archivos desde la aplicación Archivos después de establecer esta configuración?
Su aplicación siempre se mostrará con "Copiar a" usando este método y "Abrir en ...". Ninguna cantidad de ajustes en la configuración cambiará eso.
Lo que quieres hacer en su lugar es crear una extensión Compartir. Los pasos para eso están bien documentados por Apple. Ver por ejemplo: https://developer.apple.com/library/content/documentation/General/Conceptual/ExtensibilityPG/
Una extensión de Compartir cambia la naturaleza de la interacción de tu aplicación. En lugar de responder a openURL en el delegado de su aplicación, crea una extensión compartida que se ocupa de (posiblemente varios archivos) como le parezca.