Enlace profundo a través de la Búsqueda de Google – cómo funciona, y qué poner en el manifiesto?

Fondo

Necesito investigar cómo integrarme con la nueva (?) Característica de búsqueda profunda de Google.

El problema

Esto parece una característica relativamente nueva que todavía no es tan popular, por lo que no puedo encontrar muchos recursos sobre cómo funciona y cómo configurarlo correctamente.

Lo que he intentado

He leído algunos sitios web de Google y he visto algunos de sus videos:

  • Https://www.youtube.com/watch?v=kYLrK-gD2Yg
  • Https://www.youtube.com/watch?v=UjLJoMWSXts
  • Https://developers.google.com/app-indexing/webmasters/app
  • Https://support.google.com/googleplay/android-developer/answer/6041489
  • Https://developers.google.com/app-indexing/webmasters/appindexingapi
  • Https://developers.google.com/app-indexing/
  • Https://plus.google.com/+AppIndexing/posts
  • Http://googlewebmastercentral.blogspot.co.il/2014/06/android-app-indexing-is-now-open-for.html

Por lo que entiendo, necesito registrar la aplicación, cambiar los datos (manejo de intenciones) en el manifiesto para una actividad y cambiar el código de la actividad también, pero no estoy seguro de entender cómo funciona todo y cuál es el Mejor manera de configurarlo.

Las preguntas

Incluso después de que mucha lectura, todavía quisiera hacer algunas preguntas sobre el acoplamiento profundo usando la búsqueda de Google:

  1. En primer lugar, la pregunta básica, para verificar que sé de qué se trata: Permite que las aplicaciones se indexen a través de la aplicación "Búsqueda de Google", pero esas aplicaciones también deben instalarse. Una vez que el usuario hace clic en un elemento dentro de la aplicación "Búsqueda de Google", accede a su aplicación y obtiene la consulta. ¿Es esto correcto? ¿Hay algo más que eso?

  2. Ellos escribieron que minSdkVersion debe ser 17 o menos ( aquí ). ¿Cómo es que es "o debajo" en lugar de "o por encima"?

  3. Por alguna razón, la consulta de los ejemplos (como aquí ) son de textos sencillos, pero la aplicación se muestra allí. ¿Por qué se muestra? ¿Qué indica en el manifiesto a Google-Search que la aplicación puede manejar esta consulta? Los ejemplos de código muestran URL …

  4. ¿Es posible probar el enlace profundo a través de la Búsqueda de Google sin registrarlo ( aquí )? Todo lo que he encontrado es cómo probarlo a través de adb, pero no entiendo donde en el ejemplo ( aquí ) es la consulta que el usuario entra.

  5. ¿El enlace profundo requiere un sitio web real que los usuarios puedan visitar a través del navegador web? Pido esto porque hay un paso llamado "Verify website" al registrarse en el servicio ( aquí ).

  6. Supongamos que quiero permitir que el usuario busque un número de teléfono a través de la aplicación. ¿Debo poner "tel:" en el "esquema" (como se muestra aquí ) parte dentro del manifiesto? ¿O es algo más (o más que eso)? ¿Google-Search sabría exactamente cuándo mostrar la aplicación (por ejemplo, cuando el número de teléfono es válido)?

  7. ¿Es posible utilizar esta función en caso de que la aplicación no esté instalada, de modo que aliente a las personas a descargar la aplicación y / o buscar a través de un sitio web real?

  8. Incluso cuando intento probarlo, he fallado. Manifiesto:

    <intent-filter> <action android:name="android.intent.action.VIEW" /> <!--should match to : https://somehost/search/?number=--> <data android:scheme="https" android:host="somehost" android:pathPrefix="/search/?" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> </intent-filter> 

código:

  Intent intent = getIntent(); String action = intent.getAction(); Uri data = intent.getData(); Log.d("AppLog", "action:"+action+" data:"+data); 

Comando adb (desde aquí ):

 adb shell am start -W -a android.intent.action.VIEW -d "somehost/search/?050" com.example.user.myappli cation Starting: Intent { act=android.intent.action.VIEW dat=somehost/search/?050 pkg=c om.example.user.myapplication } Error: Activity not started, unable to resolve Intent { act=android.intent.actio n.VIEW dat=somehost/search/?050 flg=0x10000000 pkg=com.example.user.myapplicatio n } 

Incluso he probado la muestra exacta, pero con un nombre de paquete diferente, y todavía no funcionó.

¿Qué hay de malo aquí?

  1. Google Search app y google.com en Chrome también. El usuario debe iniciar sesión. Si la aplicación está instalada, los clics harán un vínculo profundo con tu aplicación.

  2. Si su minSdkVersion es 15, 16, 17 que está bien. Si es 18, entonces no está bien.

  3. Si la aplicación está indexada por Google, los enlaces más profundos a su aplicación pueden aparecer en los resultados de la Búsqueda de Google para los usuarios que tengan instalada la aplicación. Google se entera de los vínculos profundos admitidos de su aplicación cuando le informa a Google acerca de estos vínculos a través del marcado del sitio web, el mapa del sitio o conectando su sitio web. Busque "Proporcionar vínculos profundos" en la documentación de indexación de aplicaciones.

  4. Para ver qué consultas puede mostrar su contenido, vaya a la nueva Consola de búsqueda (g.co/searchconsole) y acceda. Entonces, debe buscar qué tipo de tráfico su sitio web recibe de Google y qué impresiones Y los clics que su contenido está obteniendo para qué consultas. Si tu aplicación admite los mismos vínculos y proporcionaste estos vínculos profundos de la aplicación a Google, estas son las mismas consultas en las que deben aparecer tus vínculos profundos de la aplicación.

  5. Para la indexación de aplicaciones, se necesita un sitio web, es necesario que indique el mapeo de Google desde una URL web a un enlace profundo de la aplicación, ya sea a través del mapa del sitio, el marcado del sitio web o mediante la verificación de su sitio web. Pero si usted hace un mapa del sitio o un marcado, usted no necesita verificar su Web site. Si solo está hablando de que su aplicación es compatible con vínculos profundos, no se necesita un sitio web para ello.

  6. Puede utilizar cualquier esquema que desee para sus enlaces profundos, así que supongo que tel: debe funcionar (aunque no lo he probado yo mismo). Sin embargo, Google no sabrá automáticamente cuándo mostrar este número de teléfono hasta que haya proporcionado una asignación a su contenido web. Vea # 3.

  7. Sí. A partir de abril de 2015 esto es ahora posible. Vea el enlace en respuesta a # 1.

  8. Algunas sugerencias:

    • En el archivo de manifiesto, haga el prefijo de ruta "/ search".
    • Para el comando adb, intente especificar su enlace como " https: // somehost / search "

Si eso no funciona, es posible que usted necesita para introducir un sitio web para su anfitrión, es decir, usted necesita un dominio. Si eso no es lo que quieres hacer, solo crea un esquema personalizado para propósitos de prueba, por ejemplo

  <data android:scheme="example" android:host="gizmos" /> 
  • Android M - La vinculación de aplicaciones no funciona en Chrome
  • Android deep linking -Using Branch.io no se abre en Android
  • ¿Cómo vincular profundamente una aplicación del navegador de Builtin de la aplicación de Facebook?
  • Cómo agregar texto personalizado en lugar de URL en mensaje Deeplink
  • Deep vinculación no capaz de fallback a google mercado?
  • URI personalizado esquemas para el Facebook Messenger
  • Enlace profundo de Android que funciona sólo en algunos sitios web
  • Android deep linking - Pila trasera
  • Redirigir desde Mozilla Firefox a la aplicación de Android - Deep Linking
  • ¿Existe un esquema URI universal para la aplicación de Facebook, que funciona en todos los dispositivos móviles?
  • IOS y Android Shared HTTP Deep Linking?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.