¿Puedes abrir una aplicación de iOS desde un esquema de URL HTTP?

Me gustaría abrir mi aplicación iOS similar a cómo se puede hacer en Android, es decir, utilizando una dirección web específica en lugar de un protocolo URL personalizado.

Así es como funciona en Android. La aplicación Reddit is Fun es un gran ejemplo de esto:

  • El usuario está en su aplicación de correo, aplicación de browser o algo equivalente.
  • El usuario hace clic en un enlace a una publicación de Reddit. Para este ejemplo, el enlace es " http://networkingdit.com/r/example "
  • La aplicación Reddit is Fun está configurada para manejar enlaces " http://networkingdit.com/ "
  • Android muestra un cuadro de dialog que ofrece al usuario estas opciones:
    • Abrir enlace en el browser web
    • El enlace abierto en Reddit es divertido

He estado intentando encontrar material de reference en los Esquemas URL de iOS de Apple, pero todo lo que he encontrado hasta ahora indica que necesitas tener un protocolo de URL personalizado y que no puedes usar http: //. Tendrías que usar algo así como 'networkingdit: //'.

Lo mejor de especificar una dirección web real como un esquema de URL es que si no tuviera la aplicación Reddit is Fun, el browser abriría automáticamente la página y sería una gran alternativa. En el caso de utilizar un protocolo de URL personalizado como en iOS, si su dispositivo no tiene la aplicación instalada, no hay respaldo. No hay indicios de que haya fallado. No hay indicios de que haya intentado hacer algo.

¿Alguien sabe una forma de abrir una aplicación de esta manera? Por ejemplo, ¿es posible abrir una aplicación de Reddit onclick en el enlace ' http://networkingdit.com/ '?

Editar: Lo que me parece muy interesante es que iOS ya lo admite en cierta medida con los enlaces de YouTube .

Editar: Parece que no hay manera de hacer exactamente lo que quiero en iOS. Sin embargo, esta publicación tiene buenas sugerencias sobre qué hacer. Esperaba que las cosas hubieran cambiado desde 2009.

Esto ahora está habilitado en ios en lo que llaman "Enlaces universales": https://developer.apple.com/library/ios/documentation/General/Conceptual/AppSearch/UniversalLinks.html

Hay un complemento de Cordova para admitir esto si su fuente está basada en html: https://github.com/nordnet/cordova-universal-links-plugin#android-web-integration

Lo que has encontrado es correcto, solo se puede hacer con un esquema personalizado.

Déjame decirte cómo en iOS se logra con la mayoría de las aplicaciones, espero que 'Reddit is Fun' también.

El enlace Http lo networkingirige a una página web que verifica si su aplicación iOS está instalada, llamando a la URL personalizada asociada con su aplicación.

Si regresa, la página web se carga, de lo contrario, la aplicación se inicia con una vista específica .

Espero que eso sea lo que estabas buscando.

De hecho, puede hacer esto, pero le exigirá que aloje una página en su server para cada artículo de Reddit al que desee vincular. Construimos una versión dinámica de esto nosotros mismos en Branch para que no tengamos que crear una página manualmente cada vez, y también detectamos iOS frente a Android. Pero para crear manualmente una página, están los pasos:

Si desea enviar un correo electrónico que se une a http://networkingdit.com/r/example , debe crear una página y alojarla en su server (por ejemplo, http://yourapp.com/hosted-links/r/example ) Debe tener un aspecto como este:

<!DOCTYPE html> <html> <body> <script type="text/javascript"> window.onload = function() { // Deep link to your app goes here document.getElementById("l").src = "networkingdit://r/example"; setTimeout(function() { // Link to the App Store should go here -- only fires if deep link fails window.location = "http://networkingdit.com/r/example"; }, 500); }; </script> <iframe id="l" width="1" height="1" style="visibility:hidden"></iframe> </body> </html> 

Ahora puede vincular a su server, http://yourapp.com/hosted-links/r/example , y se abrirá de manera adecuada en iOS si el usuario tiene la aplicación o no.