2010-01-19 14 views
38

Soy un desarrollador de iPhone novato, escribiendo una aplicación que será la "versión móvil" de un sitio web.Aplicaciones de iPhone: ¿Puedo abrir una aplicación desde un enlace en un sitio web?

Me pregunto si es posible iniciar mi aplicación desde un enlace en un sitio web. Entonces, por ejemplo, alguien entra a nuestro sitio en el iPhone Safari, hace clic en un enlace y nuestra aplicación se inicia.

¿Es esto posible?
Si es así, ¿puedo también "pasar parámetros" a la aplicación que estoy lanzando? Al igual que en ...
Al hacer clic en diferentes enlaces, podrían obtener diferentes elementos en la aplicación en el momento del lanzamiento.

Gracias!
Daniel

Respuesta

51

Determinadas aplicaciones tienen esquemas de URL que las lanzarán. Si una aplicación ha publicado este esquema (o si busca en su paquete) puede iniciarlo. Por ejemplo, una aplicación hipotética de Twitter podría lanzarse con un twitterapp: // aquí + es + mi + tweet URL. Si precarga su aplicación con el esquema de URL correcto, puede hacer esto por la suya también.

Aquí hay un esquema de URL muestra del info.plist:

<key>CFBundleURLTypes</key> 
<array> 
    <dict> 
     <key>CFBundleURLName</key> 
     <string>com.standalone.cooltwitterapp</string> 
     <key>CFBundleURLSchemes</key> 
     <array> 
      <string>twitterapp</string> 
     </array> 
    </dict> 
</array> 
+1

iba a responder lo mismo. +1 –

+2

¿Cómo se abre la aplicación de Youtube cuando hace clic en un enlace 'http: // youtube.com /' (es decir, no 'youtube: //') – andrewtweber

+1

@andrewtweber el sistema operativo específicamente maneja eso: http: // desarrollador. apple.com/library/ios/#featuredarticles/iPhoneURLScheme_Reference/Introduction/Introduction.html#//apple_ref/doc/uid/TP40007899 – TofuBeer

6

si, utilizando custom URI schemes. Tenga en cuenta, sin embargo, que los clientes sin la aplicación no podrán usar los enlaces.

Si es así, ¿puedo también "pasar parámetros" a la aplicación que estoy lanzando?

Nuevamente, sí. Una vez que su aplicación se haya registrado para un esquema dado, es todo suyo.

+2

¿Por qué no almacena una cookie que indica si los clientes tienen la aplicación y muestra un enlace u otro basado en la cookie? Si no encuentra la cookie, en su lugar muestre una pregunta: "¿Tiene instalada la aplicación XYZ?" Si dicen "No", ofrécete a instalarlo de inmediato. – iconoclast

+1

El enlace mencionado ya no funciona. – Ju66ernaut

+0

@ Ju66ernaut Enlace actualizado. Gracias. – jensgram

9

También vale la pena señalar que se llamará al método application:openURL:sourceApplication:annotation: cuando su aplicación se inicie desde una URL. Detalles en Apple's Docs.

+1

He reparado tu enlace (estaba roto). También sus documentos dicen que handleOpenURL está en desuso y que debe usarse una función diferente de openURL. – eodabash

+1

Correcto, 'handleOpenURL:' está en desuso. Utilice esta 'aplicación: openURL: sourceApplication: annotation:' en su lugar. –

Cuestiones relacionadas