Me gustaría tener iOS para abrir las URL de mi dominio (por ejemplo, http://martijnthe.nl ) con mi aplicación cada vez que la aplicación esté instalada en el teléfono y con Mobile Safari en caso de que no lo esté.
Leí que es posible crear un sufijo de protocolo único para esto y registrarlo en Info.plist, pero Mobile Safari dará un error en caso de que la aplicación no esté instalada.
¿Cuál sería una solución alternativa?
Una idea:
1) Use http: // URL que se abren en cualquier navegador de escritorio y prestan el servicio a través del navegador
2) Verifique el User-Agent y, en caso de que sea Mobile Safari, abra myprotocol: // URL para (intentar) abrir la aplicación de iPhone y haga que abra Mobile iTunes para descargar la aplicación en caso de que el intento falle
No estoy seguro si esto funcionará ... ¿sugerencias? ¡Gracias!
Respuestas:
Creo que la forma menos intrusiva de hacer esto es la siguiente:
appInstalled
cookiewindow.location
enyour-uri://
(o realice el redireccionamiento del lado del servidor)your-uri://
La otra opción con la que jugué pero que encontré un poco torpe fue hacer lo siguiente en Javascript:
fuente
window.location="custom-uri://
tiene éxito, no se elimina el tiempo de espera de reserva. Cuando el usuario regrese al navegador desde su aplicación, el temporizador aún estará allí e iniciará el enlace de la tienda de aplicaciones. Esta es una experiencia de usuario deficiente.Es muy posible hacer esto en JavaScript, siempre y cuando su reserva sea otra aplicación adicional. Sobre la base de la sugerencia de Nathan :
Mira una demostración en vivo aquí .
fuente
Para dispositivos iOS 6, hay una opción: Promover aplicaciones con Smart App Banners
fuente
Descubrí que la respuesta seleccionada funciona para las aplicaciones del navegador, pero estaba teniendo problemas con el código que funciona en aplicaciones que no son del navegador que implementan a
UIWebView
.El problema para mí era que un usuario en la aplicación de Twitter haría clic en un enlace que los llevaría a mi sitio a través de un
UIWebView
en la aplicación de Twitter. Luego, cuando hicieron clic en un botón de mi sitio, Twitter intenta ser elegante y solo completa elwindow.location
si el sitio es accesible. Entonces, lo que sucede es unaUIAlertView
ventana emergente que dice si está seguro de que desea continuar y luego redirige inmediatamente a la App Store sin una segunda ventana emergente.Mi solución involucra iframes. Esto evita que
UIAlertView
se presente, lo que permite una experiencia de usuario simple y elegante.jQuery
Javascript
EDITAR:
Agregue la posición absoluta al iframe para que cuando se inserte no haya un espacio en blanco al azar en la parte inferior de la página.
También es importante tener en cuenta que no he encontrado la necesidad de este enfoque con Android. Usar
window.location.href
debería funcionar bien.fuente
En iOS9, Apple finalmente introdujo la posibilidad de registrar su aplicación para manejar ciertas
http://
URL: enlaces universales .Una explicación muy aproximada de cómo funciona:
http://
URL para ciertos dominios (URL web) en su aplicación.http://
URL para una configuración como se explicó anteriormente y abre la aplicación correcta automáticamente si está instalada; sin pasar por Safari primero ...Esta es la forma más limpia de hacer enlaces profundos en iOS, desafortunadamente solo funciona en iOS9 y versiones posteriores ...
fuente
CONSTRUYENDO nuevamente sobre la respuesta de Nathan y JB:
Cómo iniciar la aplicación desde la url sin clic adicional Si prefiere una solución que no incluya el paso intermedio de hacer clic en un enlace, se puede utilizar lo siguiente. Con este javascript, pude devolver un objeto Httpresponse de Django / Python que inicia con éxito una aplicación si está instalada o, alternativamente, lanza la tienda de aplicaciones en caso de un tiempo de espera. Tenga en cuenta que también necesitaba ajustar el tiempo de espera de 500 a 100 para que esto funcione en un iPhone 4S. Pruebe y modifique para hacer lo correcto para su situación.
fuente
document.webkitHidden
es detectar si su aplicación ya está invocada y la pestaña de safari actual pasa a segundo plano, este código es de www.baidu.comfuente
appurl
yweburl
podría resolver su problemaSi agrega un
iframe
en su página web con elsrc
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 hacer un enlace profundo a 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 lo dirigirá inmediatamente a la aplicación.
Aquí hay un ejemplo más completo que redirige a la tienda de aplicaciones si la aplicación no está instalada:
fuente
Heres una solución.
Configure una situación booleana usando desenfoque y enfoque
Vincula tu enlace con un controlador de clic jquery que llama a algo como esto.
Si se abre la aplicación, perderemos el foco en la ventana y el temporizador termina. de lo contrario no obtenemos nada y cargamos la URL de Facebook habitual.
fuente
No puedo, hasta donde yo sé, hacer que todo el sistema operativo entienda una
http:
URL de dominio +. Solo puede registrar nuevos esquemas (los usox-darkslide:
en mi aplicación). Si la aplicación está instalada, Mobile Safari la iniciará correctamente.Sin embargo, tendría que manejar el caso en el que la aplicación no está instalada con un "¿Todavía aquí? Haga clic en este enlace para descargar la aplicación desde iTunes". en tu página web.
fuente
http
URLEsto me parece un enfoque razonable, pero no creo que sea capaz de abrir iTunes móvil como segundo recurso. Creo que tendrá que elegir uno u otro, ya sea redirigir a su aplicación o iTunes.
es decir, si redirige a myprotocol: // y la aplicación no está en el teléfono, no tendrá una segunda oportunidad para redirigir a iTunes.
¿Tal vez podría primero redirigir a una página de destino (optimizada para iPhone) y darle al usuario la opción de hacer clic en su aplicación o en iTunes para obtener la aplicación si no la tienen? Pero dependerá de que el usuario haga lo correcto allí. (Editar: ¿aunque podría configurar una cookie para que sea solo una primera vez?)
fuente
Al tratar de solucionar el problema de la ventana emergente, descubrí que Apple tenía una forma de evitar esta preocupación.
De hecho, cuando hace clic en este enlace , si instaló la aplicación, se redirige a ella; de lo contrario, será redirigido a la página web, sin ninguna ventana emergente.
fuente