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.
- Cómo abrir mi aplicación Android nativa desde una entrada en Facebook
- El atributo pathPrefix de Deeplink de Android se está omitiendo
- Deep Link no funciona en Chrome para Android
- ¿Cómo promocionar / abrir la aplicación de los resultados del sitio web de búsqueda de Google?
- Enlace profundo de Android en la aplicación Instagram
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:
-
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?
-
Ellos escribieron que minSdkVersion debe ser 17 o menos ( aquí ). ¿Cómo es que es "o debajo" en lugar de "o por encima"?
-
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 …
-
¿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.
-
¿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í ).
-
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)?
-
¿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?
-
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í?
- Cómo pasar los parámetros de campaña de GooglePlay mediante Intent de Android Chrome
- Enlace profundo de Android con URI personalizado
- ¿Cuál es el código de aplicación utilizado para crear el vínculo profundo de la URL en Firebase para Android
- ¿Es posible implementar enlaces profundos desde el sitio web a la aplicación nativa hoy en día?
- Aparece la pantalla Mi aplicación en los navegadores
- Deeplink dinámico en Android
- Abrir en la intención del navegador cuando el enlace también redirecciona con deep-linking
- Relacionar URI con <data> como http://example.com/algo en AndroidManifest
-
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.
-
Si la aplicación no está instalada, participar en la indexación de aplicaciones puede ayudar a instalar las unidades: http://googlewebmastercentral.blogspot.com/2015/04/drive-app-installs-through-app-indexing.html
-
Además, una aplicación indexada se considera "móvil-amigable", que es una señal de clasificación. Busque "encontrar más búsqueda móvil" en el mismo blog.
-
-
Si su minSdkVersion es 15, 16, 17 que está bien. Si es 18, entonces no está bien.
-
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.
-
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.
-
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.
-
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.
-
Sí. A partir de abril de 2015 esto es ahora posible. Vea el enlace en respuesta a # 1.
-
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" />
- Viewpager no funciona correctamente en lollipop 5.0 cuando uso otros fragmentos
- Cómo obtener los ángulos euler del vector de rotación (Sensor.TYPE_ROTATION_VECTOR)