reconocidos como cargos cancelar bill apple ios redirect app-store

ios - como - Redirigir a la aplicación si está instalada, de lo contrario, al App Store



itunes store (5)

Sé que es posible vincular directamente a una aplicación en iOS mediante el registro de un esquema personalizado (por ejemplo, así: //) y también es posible vincular a la aplicación en la tienda de aplicaciones a través de iTunes.

En muchos casos, el flujo ideal es proporcionar un enlace que redirija a la aplicación si está instalada y a la tienda si no. ¿Es posible? y si lo es, cómo?

Agregado para mayor claridad , el escenario es que estoy abriendo un enlace (http) desde un correo electrónico en mi iPhone que me invita a unirme a un grupo en una aplicación. Si el usuario tiene la aplicación instalada en ese dispositivo, debería abrirse; de ​​lo contrario, el enlace http debería redirigirse a iTunes.


"Banners de aplicaciones inteligentes": no estoy seguro de cuándo aparecieron, pero después de encontrar esta publicación que busca lo mismo, luego Smart App Banners, esto es seguimiento.

Los Smart App Banners son una metaetiqueta html de una línea en el encabezado de cada página que desea ofrecer a su aplicación sobre la experiencia web:

<meta name="apple-itunes-app" content="app-id=myAppStoreID, affiliate-data=myAffiliateData, app-argument=myURL">

que muestra ese icono en la parte superior de la página y "Abrir esta página" con la aplicación o el enrutamiento a la App Store.

Los metadatos de esta página en el iPhone se ven así (anonimizados por supuesto):

<meta name="apple-itunes-app" content="app-id=605841731, app-argument=lync://confjoin?url=https://meet.rtc.yourcorporatedomain.com/firstName.lastName/conferenceID">

Documentación del desarrollador de Apple: promoción de aplicaciones con Smart App Banners


Creo que la respuesta más simple sería configurar una página en tu servidor con la siguiente javascript:

(function() { var app = { launchApp: function() { window.location.replace("myapp://"); this.timer = setTimeout(this.openWebApp, 1000); }, openWebApp: function() { window.location.replace("http://itunesstorelink/"); } }; app.launchApp(); })();

Esto básicamente intenta redirigir a su aplicación y establece un tiempo de espera para redirigir a la tienda de aplicaciones si falla.

Incluso podría hacer que el código sea un poco más inteligente, y verificar el agente de usuario para ver si es un usuario de iOS, un usuario de Android o un usuario web, y luego redirigirlos de manera adecuada.


No hay forma de verificar esto. Sin embargo, hay una buena solución.

La idea es básicamente esto:

  1. La primera vez que abre su aplicación, abre safari móvil desde su aplicación a una URL predefinida en su servidor
  2. En esa URL, configura una cookie, como una aplicación instalada en el safari móvil de los usuarios
  3. A continuación, devuelve al usuario a su aplicación con su esquema registrado (lo mismo que FB hace con SSO)
  4. Todos sus enlaces de correo electrónico apuntan a su sitio web, pero en el sitio web usted verifica si el navegador es Safari móvil y si la aplicación cookie instalada existe.
  5. Si el navegador no es Safari móvil o no se encuentra la cookie, se redirige a la AppStore o permanece en su página web.
  6. Si las condiciones del # 4 son verdaderas, redirige al usuario a su aplicación con el esquema registrado
  7. Si el usuario ha eliminado la aplicación, por lo que el esquema de url personalizado falla, tiene una redirección segura a la tienda de aplicaciones.

Los 2 últimos pasos se explican en esta publicación SO


Sí, es bastante fácil. Esto requiere que la aplicación que desea abrir tenga un esquema de URL declarado en el plist:

//if you can open your app if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"yourapp://"]]) { [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"yourapp://"]]; } else { [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"ituneappstorelink"]]; }


Si tiene una página web a la que enlaza desde el correo electrónico con la página web que contiene un iframe con el src configurado en el esquema personalizado para su Aplicación, iOS redirigirá automáticamente a esa ubicación en la Aplicación. Si la aplicación no está instalada, no pasará nada. Esto le permite realizar un enlace profundo a la aplicación si está instalada, o redireccionar a la tienda de aplicaciones si no está instalada.

Por ejemplo, si tiene instalada la aplicación de Twitter y navega a una página web que contiene el siguiente marcado, se lo dirigirá inmediatamente a la aplicación. Si no tiene instalada la aplicación Twitter, verá el texto "La aplicación Twitter no está instalada".

<!DOCTYPE html> <html> <head> <title>iOS Automatic Deep Linking</title> </head> <body> <iframe src="twitter://" width="0" height="0"></iframe> <p>The Twitter App is not installed</p> </body> </html>

Aquí hay un ejemplo más completo que redirige a la tienda de aplicaciones si la aplicación no está instalada:

<!DOCTYPE html> <html> <head> <title>iOS Automatic Deep Linking</title> <script src=''//code.jquery.com/jquery-1.11.2.min.js''></script> <script src=''//mobileesp.googlecode.com/svn/JavaScript/mdetect.js''></script> <script> (function ($, MobileEsp) { // On document ready, redirect to the App on the App store. $(function () { if (typeof MobileEsp.DetectIos !== ''undefined'' && MobileEsp.DetectIos()) { // Add an iframe to twitter://, and then an iframe for the app store // link. If the first fails to redirect to the Twitter app, the // second will redirect to the app on the App Store. We use jQuery // to add this after the document is fully loaded, so if the user // comes back to the browser, they see the content they expect. $(''body'').append(''<iframe class="twitter-detect" src="twitter://" />'') .append(''<iframe class="twitter-detect" src="itms-apps://itunes.com/apps/twitter" />''); } }); })(jQuery, MobileEsp); </script> <style type="text/css"> .twitter-detect { display: none; } </style> </head> <body> <p>Website content.</p> </body> </html>