2011-11-20 12 views
65

Xcode4 está pidiendo un gran número de argumentos sólo para hacer esta simple cosa posible:¿Cómo registrar un esquema de URL de apertura de aplicaciones personalizadas con Xcode 4?

NSString *stringURL = @"twitterriffic://"; 
NSURL *url = [NSURL URLWithString:stringURL]; 
[[UIApplication sharedApplication] openURL:url]; 

Xcode 4 Info.plist editor

¿Cuáles son todas estas propiedades para? ¿Por qué una imagen? ¿Debo repetir el identificador de la aplicación aquí? ¿Qué función debo elegir si deseo que alguien pueda llamar a esta URL para abrir mi aplicación? ¿Y para qué sirven estas propiedades de tipo de url adicional?

he encontrado ninguna clase particular relacionada con Xcode4 cómo registrar un esquema de URL con Xcode 4.

+0

Si tiene idea acerca ¿Uso de "propiedades de tipo de url adicionales"? – user454083

+3

Lo he explicado en la publicación y también proporcioné código para parámetros adicionales desde la URL personalizada: http://2cupsoftech.wordpress.com/2013/01/08/supporting-custom-url-schemes-in-ios-app/ – 2cupsOfTech

Respuesta

17

Puede seguir para registrar su URL personalizada mediante la edición de archivos info.plist de su aplicación (como se muestra en uno de su anterior questions). Se supone que el nuevo editor en Xcode 4 es una conveniencia para que sea más fácil agregar las entradas; todo lo que hace es hacer los mismos cambios en info.plist que usted haría manualmente. Si desea utilizar el nuevo editor, solo debe completar los cuadros "Identificador" y "Esquemas de URL". No necesita una imagen, icono o propiedades de URL adicionales.

Las otras propiedades (icono, etc.) no están bien documentadas pero parecen ser aplicables solo en Mac OS X y podrían usarse en el cuadro de diálogo Obtener información del Finder para mostrar qué tipos de URL puede abrir una aplicación en particular. Por ejemplo, eche un vistazo al Launch Services Programming Guide.

0

Lo que cambie en ese editor también se refleja en el archivo de información del proyecto. Toma la forma de ProjectName -Info.plist. Espero que eso ayude.

91

Edit your AppName-Info.plist file

  • abierto "Apoyo a los archivos" (carpeta) a la izquierda y haga clic en el "mi_aplicacion-Info.plist"
  • Elija una fila como "creador Bundle OS Código Tipo" y el ratón sobre la fila y haga clic en el símbolo (+)
  • Esto crea una nueva fila y tipo "tipos de URL"
  • Haga clic en el arror a la izquierda y ver Punto 0 y se le cambia el nombre del valor en el punto 0 a "esquemas de URL" como se muestra
  • Luego edi t el campo en el ítem 0 y escriba su prototipo; Escribí "goomzee" como se muestra

Ahora, si instalo esta aplicación en mi simulador, abro Safari y escribo "goomzee: //" en la barra de direcciones, abriré mi aplicación.

+4

Dentro del archivo .Plist, el código en cuestión es: ' CFBundleURLTypes CFBundleURLSchemes goomzee ' –

+6

CFBundleURLTypes CFBundleURLName com.iphonebasic.testdemo CFBundleURLSchemes com-iphonebasic-testdemo iphonemaclover

+0

Este "código relevante" trabajaron para mí! Gracias –

25

Sí, esto no es sencillo ¿verdad?

que he descrito los pasos necesarios para registrar una URL personalizada aquí: Custom URLs

Pero, básicamente, la clave para que es la creación de un valor "Tipos de URL" en el archivo plist.Esto es lo que se ve como en XCode 5:

URL types

En este ejemplo, me he registrado el MKB prefijo, por lo que ahora, puedo usar este nuevo tipo de URL en hipervínculos en páginas web y correos electrónicos (si leo un correo electrónico en la aplicación correo iPAD):

Mail app

Si un usuario pulsa sobre uno de estos enlaces, mi aplicación para iPad se pondrá en marcha, y que puede tener acceso a la cadena de URL completa, para extraer los otros parámetros de la URL (por ejemplo, "DocumentNumber = 100")

El único problema es que todavía tengo que averiguar cómo probar si un usuario tiene una aplicación de iPad que puede reconocer un prefijo en particular.

Si ellos no tienen , y toque en uno de estos MKB: // enlaces en su iPad, que van a obtener un mensaje de error feo:

Nope

+1

Guau explicación fantástica en tu blog. Esto me salvó unas 2 horas. ¡¡GRACIAS!! – Wirsing

+0

La cuestión es que DESPUÉS 'MKB: //' DEBE haber algo. –

Cuestiones relacionadas