¿Cómo puedo comprobar si una aplicación está instalada desde una página web en un iPhone?
Quiero crear una página web, una página que redirija un iPhone a la App Store si el iPhone no tiene la aplicación instalada, pero si el iPhone tiene la aplicación instalada, quiero que abra la aplicación.
Ya implementé una URL personalizada en la aplicación de iPhone, por lo que tengo una URL para la aplicación que es algo así como:
myapp://
Y si esta URL no es válida, quiero que la página redirija a la App Store. ¿Es esto posible en absoluto?
Si no tengo la aplicación instalada en el teléfono y escribo la URL myapp:// en Safari, todo lo que aparece es un mensaje de error.
Incluso si existe un truco feo con JavaScript, realmente me gustaría saberlo.
Hasta donde yo sé, desde un navegador no se puede verificar si una aplicación está instalada o no.
Pero puedes intentar redirigir el teléfono a la aplicación y, si no pasa nada, redirigir el teléfono a una página específica, como esta:
setTimeout(function () { window.location = "https://itunes.apple.com/appdir"; }, 25);
window.location = "appname://";
Si la segunda línea de código da un resultado, la primera fila nunca se ejecuta.
Preguntas similares:
- Navegador de iPhone: comprobar si la aplicación de iPhone está instalada desde el navegador
- ¿Es posible registrar un esquema de URL basado en dominio http+ para aplicaciones de iPhone, como YouTube y Maps?
Para promover la respuesta aceptada, a veces es necesario agregar código adicional para manejar a las personas que regresan al navegador después de iniciar la aplicación; la función setTimeout se ejecutará siempre que lo hagan. Entonces, hago algo como esto:
var now = new Date().valueOf();
setTimeout(function () {
if (new Date().valueOf() - now > 100) return;
window.location = "https://itunes.apple.com/appdir";
}, 25);
window.location = "appname://";
De esa manera, si se ha congelado la ejecución del código (es decir, cambio de aplicación), no se ejecutará.