Cómo saber si el usuario de Android vino de la aplicación de pantalla de inicio

¿Hay una manera de saber si un usuario llegó a su sitio web a través de una pantalla de inicio shorcut? Con iOS puedo usar el siguiente código javascript para detectar si el usuario abrió la página a través del acceso directo a la pantalla de inicio:

if (('standalone' in navigator && !navigator.standalone && (/iphone|ipod|ipad/gi).test(navigator.platform) && (/Safari/i).test(navigator.appVersion)) { window.location = 'index2.html'; } 

No puedo encontrar que hay algo similar que se puede hacer con Android, sin embargo. Cualquier ayuda sería muy apreciada 🙂

La respuesta corta es no."

Un widget de marcador de sitio web lanzado desde la pantalla de inicio de Android no incluye un referer (acabo de marcar ).

Además, el mecanismo para instalar / marcar una aplicación web localmente en Android es completamente diferente que en el iPhone, y definitivamente no es tan completo (como se informa en el rastreador de problemas).

[…]

Yo respaldo expresamente esta solicitud, ya que no es posible ofrecer un WebApp de aspecto nativo en Android en ese momento sin implementar un casco superficial de una aplicación, que contenga sólo un WebView (o implementar uno de los Frameworks populares como PhoneGap o apparat.io ).

Esto lleva al punto en el que tienes que pagar 25 USD por ofrecer un WebApp nativo en Android. Lo mismo es gratis en los dispositivos iOS – y más elegante

Por cierto, el propietario del sitio web anterior es un poco equivocado. En android, solo podría ofrecer la aplicación desde su sitio web sin pagar los $ 25 para ir a través de Market / Google Play, ya que Android utiliza autenticación libre de certificados. Pensamiento, su punto principal sigue siendo. Eso no es una cosa fácil de hacer y el resultado final puede no ser muy útil a menos que él pone mucho trabajo en él.

Y comparativamente hablando, diría que en Android, su funcionalidad de pantalla de inicio de widgets despreciados widget, en comparación con iOS, casi nunca se utiliza.

Por ejemplo, yo personalmente uso el navegador principal de cromo, o búsqueda de google, o una aplicación existente, ya que mi entrada principal apunta en cualquiera de los sitios web que visite.

En la captura de pantalla de arriba, los tres marcadores rojos a la izquierda son en realidad marcadores web. Y sólo para contrastarlos con los widgets de marcadores que no son de la web que realmente me gustan, también he colocado dos widgets de libros electrónicos a la derecha.

Además, me considero un usuario poderoso y un ávido adoptante temprano de muchas características, y uso algunos de los widgets menos usados ​​de Android, pero según HTC, sólo soy parte del 10% de las personas que lo hacen (a menos que sea Para el tiempo, el reloj (s), o la música, que al parecer la gente hace uso cuando primero instalaron su teléfono !?).

E incluso para mí, alguien que ama widgets de Android (especialmente en mi tableta para Android), el widget de directorios de marcadores más grande me da demasiado poco control para ser atractivo para mí, y el widget de marcador de sitio web único, que da control decente, no Se ven muy bien para mí y nunca lo uso ya que es sólo un marcador rojo con un pequeño favicon incrustado en el medio de la misma.

En cualquier caso, volviendo a su pregunta original.

A falta de escribir una pequeña utilidad que cada usuario de Android de su sitio de buena voluntad instalar en su dispositivo. Su única alternativa sería intentar intervenir cuando el usuario intenta marcar su sitio. Y la intervención sólo funcionaría como en la medida en que el usuario no intenta limpiar el marcador de cualquiera de los argumentos url añadido a él cuando lo establece. Por ejemplo, puede agregar la fecha en la que el usuario está navegando por su sitio a una url, y si el usuario marcó esa url, esa misma url podría aparecer en una fecha mucho posterior. Eso sería una manera de tratar de ver si el usuario procedía de un marcador (o un enlace guardado en algún lugar).

Pero incluso si pudieras hacerlo, eso sólo te diría si el usuario llegó a tu sitio a través de un autocompleto de la barra de historial o mediante un marcador iniciado en la pantalla de inicio, o simplemente a través de un marcador iniciado con Chrome normal, en lugar de simplemente escribir la dirección directamente (No estoy mencionando la búsqueda de google, porque con el usuario que usa la búsqueda de google, google le daría el referer por lo menos).

Dado que los accesos directos creados en la pantalla de inicio utilizan la misma intención que cualquier otra aplicación (después de todo, un lanzador sigue siendo una aplicación), esto es imposible.

Sin embargo, si ha creado el acceso directo por usted mismo, puede establecer la URL a una diferente y por esto saber que podría ser desde el lanzador.

Además, si la aplicación que has creado puede ser como un caché entre el lanzador y la web, puedes establecer la intención de hacer referencia a la aplicación y, con esto, podrías suponer que el enlace se abrió desde el lanzador.

Voy a ir con la respuesta breve dijo antes: No.

Los navegadores Android no permitirán que ningún sitio web tenga acceso a información sobre el INTENTO utilizado para abrir el navegador u otras cosas debido a las restricciones de seguridad de JS.

Pero … espera … hay una manera de vincular JavaScript en un sitio web a código de Android ( http://developer.android.com/guide/webapps/webview.html#BindingJavaScript ), así que lo que haría, dado Que el sitio web ya está desarrollado, es desarrollar una sencilla aplicación para Android con un bonito icono y un WebView con JS activado y apuntando al sitio web, por lo que sirve como un cliente o envoltorio de la aplicación para decir … " http: // Thewebsite.com?client=android ". En el WebView, puede bloquear la navegación a otros sitios, por lo que el usuario no puede ir a ningún otro sitio, el usuario tendrá que utilizar la navegación del sitio. A continuación, puede vincular el código de Android a JavaScript como se mencionó anteriormente para exponer métodos del entorno de Android al JavaScript de su sitio web.

En lugar de dejar que la gente agregue un acceso directo a tu sitio web, dales un enlace para descargar tu pequeña aplicación de contenedor de Google Play Store. De esta forma, sabrás quién está utilizando tu sitio web / WebApp desde dispositivos Android y, como posees la aplicación, puedes acceder al INTENTO y conocer la información del sistema operativo Android y obtener más información sobre el dispositivo desde el JS de tu sitio que El UserAgent le daría, como saber si hay una conexión de red activa en el cliente, etc.

¡Buena suerte!

  • ¿Cual es mejor? Alto número de llamadas de servicio web (mensajes SOAP) o alta cantidad de datos en un único mensaje de jabón?
  • Android coverflow
  • ¿Cómo puedo cambiar el color de OverScroll en Android 2.3.1?
  • Chrome en Android no amplía el elemento de encabezado en el cambio de orientación
  • Comportamiento de Android 4.2 - Environment.getExternalStorageDirectory (). GetPath ()
  • ¿Cuáles son las relaciones de aspecto de todos los dispositivos Android y de tableta?
  • JavaScript caret position
  • ¿Cuál es el objetivo de establecer el tamaño mínimo del montón en una aplicación para Android?
  • Impresión desde Android
  • Firebase con aplicaciones para móviles
  • Bootstrap navbar sensible a la lista desplegable no responde al tacto
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.