versiones general framework espaƱol caracteristicas actual ios cocoa-touch ios4 ios5

general - ios versiones



Registro del archivo GPX(o XML) para abrir en la aplicaciĆ³n iOS (3)

Creo que la siguiente parte debe ser eliminada:

<key>UTTypeConformsTo</key> <array> <string>public.xml</string> </array>

Reproducí el problema con él y lo solucioné eliminando.

Aparentemente, la aplicación de correo piensa que puede manejar tipos compatibles con XML mejor que otras aplicaciones, e intercepta el manejo.

También recomendaría incluir cambios de respuesta publicados por Wallace Campos .

Estoy teniendo problemas para abrir archivos GPX en mi aplicación iOS. Registré la extensión y algunos archivos se abren correctamente, es decir, cuando toco un enlace al archivo GPX en Safari, aparece un mensaje que me pregunta qué aplicación quiero usar para abrir el archivo. Luego selecciono mi aplicación y el archivo se procesa como se esperaba. Con algunos sitios web en Safari y con todos los archivos de archivos adjuntos de correo electrónico, no se muestra la selección de solicitud y aplicación, y la aplicación de navegador / correo electrónico muestra el contenido del archivo como texto.

Sospecho que esto es un problema con la configuración de info.plist o posiblemente con las aplicaciones de Safari y correo electrónico. Si abre correctamente los archivos XML o GPX en sus aplicaciones ios, ¿publicaría sus ajustes CFBundleDocumentTypes y UTExportedTypeDeclarations desde info.plist?

Cualquier pensamiento es bienvenido. Aquí está la sección apropiada de mi info.plist. Intenté agregar y eliminar algunas etiquetas opcionales, esta es la última, pero no la más completa.

<key>CFBundleDocumentTypes</key> <array> <dict> <key>CFBundleTypeIconFiles</key> <array> <string>Icon.png</string> <string>[email protected]</string> </array> <key>CFBundleTypeName</key> <string>GPS eXchange Format</string> <key>CFBundleTypeRole</key> <string>Viewer</string> <key>LSHandlerRank</key> <string>Owner</string> <key>LSItemContentTypes</key> <array> <string>org.elsners.Indicium.gpx</string> </array> </dict> </array> <key>UTExportedTypeDeclarations</key> <array> <dict> <key>UTTypeConformsTo</key> <array> <string>public.xml</string> </array> <key>UTTypeDescription</key> <string>GPS eXchange Format</string> <key>UTTypeIdentifier</key> <string>org.elsners.Indicium.gpx</string> <key>UTTypeTagSpecification</key> <dict> <key>public.filename-extension</key> <array> <string>GPX</string> <string>gpx</string> </array> </dict> </dict> </array>


Cuando trabaje con contenido HTTP (que es el caso de la aplicación Safari y Mail), no debe olvidar manejar su tipo de contenido. El identificador de tipo uniforme (UTI) para el tipo de contenido del identificador es public.mime-type y digamos que el encabezado de tipo de contenido de una respuesta del servidor está configurado como application / gpx , por lo que en su lista debe agregarlo a la sección UTTypeTagSpecification :

<dict> <key>public.filename-extension</key> <array> <string>GPX</string> <string>gpx</string> </array> <key>public.mime-type</key> <string>application/gpx</string> </dict>

Nota : he visto application / gpx y application / gpx + xml como tipo de contenido para datos GPX en la web y no sé si hay un tipo mime estándar, así que es mejor usar ambos.


Prueba este código ...

(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { if (url != nil && [url isFileURL]) { // xdxf file type handling if ([[url pathExtension] isEqualToString:@"xdxf"]) { NSLog(@"URL:%@", [url absoluteString]); } } return YES; }