2010-08-19 8 views
8

Como usuario, me encanta cómo el sitio web de Apple App Store en un navegador puede decir si tengo iTunes instalado o no y puedo actuar en consecuencia.¿Cómo sabe el sitio web de la App Store si iTunes está instalado?

Por ejemplo, si voy a la página de una aplicación como "Remember the Milk": http://itunes.apple.com/app/remember-the-milk/id293561396?mt=8 y luego haga clic en "Ver en iTunes" botón,

  1. Si he instalado iTunes, lo hará Inicie el enlace en iTunes
  2. Si no tengo iTunes, me redireccionan a una página que me dice que primero necesito descargar/instalar iTunes.

Estoy tratando de hacer algo muy similar con un producto nuestro. Hemos investigado el uso de los protocolos de url como nombre_aplicación: // url_to_open y esto funciona muy bien si el usuario ya tiene el programa instalado y el protocolo url está registrado en él.

Sin embargo, si no lo hacen, reciben un mensaje de error que no les indica qué necesitan específicamente.

Me gustaría tener más de la experiencia de iTunes en la que pueda ayudar a nuestros usuarios a ser más informativos.

Respuesta

8

Al observar los recursos de Javascript vinculados a la página, hay una función llamada "DetectItunesDetected". Parece:

  • ver si una cookie con el nombre de "iTunesPresent" está ajustado y el ordenador es un Macintosh (comprobando el agente de usuario)
  • ver si se ejecuta Internet Explorer (de nuevo, agente de usuario) y el componente ActiveX de iTunes está instalado
  • para ver si se está ejecutando Firefox y si está instalado el complemento de iTunes para los navegadores basados ​​en Mozilla.

Si la función devuelve verdadero, reemplaza los enlaces HTTP relevantes con las variantes de ITMS.

0

El sitio web no lo sabe, usa el protocolo de itms.

Para crear el suyo, deberá registrar su aplicación en el sistema operativo e indicar qué protocolo utilizará. A good article on that. La explicación de Windows funciona con todos los navegadores (que usan el registro). Otros son solo para Firefox.

0

No puedo probar esto en este momento, pero podría intentar cargar una imagen desde su aplicación utilizando su protocolo, si la imagen no se puede cargar, redirija.

<img src='yourProtocol://image.jpg' onerror='window.location="yoursite.com/pageiffails.php";' /> 
Cuestiones relacionadas