2012-05-11 14 views
8

Estoy creando una aplicación donde los usuarios pueden compartir datos enviándose correos electrónicos entre ellos. En este correo hay un enlace a mi aplicación (creé un esquema de URL para mi aplicación) Pero, si los usuarios no tienen mi aplicación en su iPhone, cuando hace clic en el enlace, no pasa nada.Esquema de URL: aplicación abierta o Appstore desde el correo

Mi pregunta: ¿Cómo podría hacer para poner en marcha mi aplicación cuando la aplicación está instalada en el iPhone del usuario y poner en marcha la Appstore o un sitio web si esta aplicación no está instalada

Gracias

+0

Parece que necesita dos enlaces. – paulmelnikow

+0

Como un "si no tiene esta aplicación, haga clic aquí"? –

+0

Hm, parece que hay algunas otras posibilidades: http://stackoverflow.com/questions/1108693/is-it-possible-to-register-a-httpdomain-based-url-scheme-for-iphone-apps- como/1109200 # 1109200 – paulmelnikow

Respuesta

6

canOpenURL es lo que estás buscando.

Aquí es un ejemplo para el lanzamiento de aplicación de Twitter:

NSURL* twitterURL = [NSURL URLWithString:[NSString stringWithFormat:@"twitter:@%@", twitterUser]]; 

if ([[UIApplication sharedApplication] canOpenURL:twitterURL]) { 
    [[UIApplication sharedApplication] openURL:twitterURL]; 
} else { 
    NSURL* url = [NSURL URLWithString:@"http://itunes.apple.com/us/app/twitter/id333903271?mt=8"]; 
    [[UIApplication sharedApplication] openURL:url]; 
} 

EDITAR

Si desea hacer hacer esto de una página web o correo electrónico HTML, a encontrar su respuesta aquí: https://stackoverflow.com/a/627942/550177

y aquí: https://stackoverflow.com/a/1109200/550177

+1

OP pregunta por un enlace en Mail.app. – paulmelnikow

+0

Probé los dos enlaces pero no puedo hacer que window.location = ... funcione. ¿Estás seguro de que funciona en los correos electrónicos? –

+0

No, no sé cómo incrustar código JavaScript en correos electrónicos HTML. Lo siento. – Felix

3

La respuesta anterior está desactualizada. Para poder abrir la aplicación si está instalada pero de manera segura recurrir a la tienda de aplicaciones, recomiendo crear un enlace profundo de rama (https://branch.io) en lugar de tratar de construirlo usted mismo, ya que hay un montón de casos extremos y la necesidad Javascript sigue cambiando con cada nueva versión de iOS.

Sin embargo, si desea alojarlo usted mismo, puede usar el siguiente fragmento donde myapp:// es el esquema de URI para su aplicación y itms-apps://itunes.apple.com/app/yourappid es la URL de la tienda de aplicaciones.

window.location = "myapp://"; 
setTimeout(function() { 
    window.location = "itms-apps://itunes.apple.com/app/yourappid"; 
}, 500); 

Puede llamar a este en window.onload y se intentará abrir la aplicación cuando se carga la página, luego caen con seguridad de vuelta a la tienda de 500 milisegundos más tarde.

Cuestiones relacionadas