Saltar al contenido

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

Solución:

Creo que la respuesta más simple sería configurar una página en su servidor con el 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();
})();

Básicamente, esto 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 apropiada.

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

La idea es básicamente esta:

  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. Luego, devuelve al usuario a su aplicación con su esquema registrado (lo mismo que hace FB con SSO)
  4. Todos los enlaces de su correo electrónico apuntan a su sitio web, pero en el sitio web usted comprueba si el navegador es Safari móvil y si existe la cookie instalada de la aplicación.
  5. Si el navegador no es Safari móvil o no se encuentra la cookie, redirige a la AppStore o permanece en su página web.
  6. Si las condiciones del n. ° 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 un redireccionamiento a prueba de fallas a la tienda de aplicaciones.

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

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 establecer un vínculo profundo en la aplicación si está instalada, o redirigir a la App Store 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 le dirigirá inmediatamente a la aplicación. Si no tenía la aplicación de Twitter instalada, verá el texto “La aplicación de Twitter no está instalada”.

<!DOCTYPE html>
<html>
    <head>
    <title>iOS Automatic Deep Linking</title>
    </head>
    <body>
        <iframe src="https://foroayuda.es/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="https://code.jquery.com/jquery-1.11.2.min.js"></script>
    <script src="https://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="https://foroayuda.es/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>
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *