Cómo agregar Android App Links

Los Android App Links son URL de HTTP que acercan a los usuarios al contenido específico en tu app para Android. Pueden atraer más tráfico a tu app, ayudarte a descubrir qué contenido de la app se utiliza más y facilitar que los usuarios compartan y busquen contenido en una app instalada.

Para agregar compatibilidad con Android App Links, haz lo siguiente:

  1. Crea filtros de intent en tu manifiesto.
  2. Agrega código a las actividades de tu app para controlar los vínculos entrantes.
  3. Asocia tu app y sitio web con vínculos Digital Asset Links.

App Links Assistant de Android Studio 2.3, y versiones posteriores, simplifica el proceso en un asistente paso a paso, como se describe a continuación.

Para obtener más información sobre cómo funcionan los vínculos de apps y los beneficios que ofrecen, lee Cómo controlar Android App Links.

Cómo agregar filtros de intents

App Links Assistant de Android Studio puede ayudarte a crear filtros de intents en tu manifiesto y asignar las URL existentes de tu sitio web a actividades de tu app. También agrega código Java de plantilla en cada actividad correspondiente para controlar el intent.

Para agregar filtros de intents y controlar las URL, sigue estos pasos:

  1. Selecciona Herramientas > App Links Assistant.
  2. Haz clic en Abrir editor de asignación de URL y, a continuación, en Agregar  en la parte inferior de la lista Asignación de URL para agregar una nueva asignación.
  3. Agrega detalles para la nueva asignación de URL:
    El App Links Assistant te guía en el proceso básico para asignar URL

    Figura 1: Agrega detalles básicos sobre la estructura de vínculos de tu sitio para asignar URL a las actividades de tu app.

    1. Ingresa la URL de tu sitio web en el campo Host.
    2. Agrega un valor de path, pathPrefix o pathPattern para las URL que quieres asignar. Por ejemplo, si tienes una app para compartir recetas, con todas las recetas disponibles en la misma actividad, y las recetas correspondientes de tu sitio web están todas en el mismo directorio /recipe, usa pathPrefix y, luego, ingresa /recipe. De esta manera, se asigna la URL http://www.recipe-app.com/recipe/grilled-potato-salad a la actividad que seleccionas en el siguiente paso.
    3. Selecciona la Actividad a la que los usuarios llegarán mediante la URL.
    4. Haz clic en Aceptar.
  4. App Links Assistant agrega filtros de intent en función de tu asignación de URL al archivo AndroidManifest.xml, y lo destaca en el campo Vista previa. Si deseas realizar algún cambio, haz clic en Abrir AndroidManifest.xml para editar el filtro de intent. (Obtén más información acerca de los filtros de intent en Android).

    Nota: Para admitir más vínculos sin actualizar tu app, debes definir una asignación de URL que admita las URL que agregarás en el futuro. Además, recuerda incluir una URL para la pantalla principal de tu app a fin de que se incluya en los resultados de la Búsqueda.

  5. Para verificar que la asignación de URL funcione correctamente, ingresa una URL en el campo Verificar asignación de URL y haz clic en Verificar asignación. Si funciona, aparece un mensaje que indica que la URL está asignada de manera correcta a la actividad que seleccionaste.

Cómo controlar vínculos entrantes

Una vez que hayas verificado que tu asignación de URL funciona correctamente, agrega la lógica para controlar el intent que creaste.

  1. Haz clic en Seleccionar actividad en App Links Assistant.
  2. Selecciona una actividad de la lista y haz clic en Insert Code.

App Links Assistant agrega código al archivo Java de tu actividad similar al siguiente (ten en cuenta que, actualmente, App Links Assistant no admite Kotlin, por lo que tendrás que agregarlo de forma manual):

Kotlin

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        val appLinkIntent = intent
        val appLinkAction = appLinkIntent.action
        val appLinkData = appLinkIntent.data

    }
    

Java

    // ATTENTION: This was auto-generated to handle app links.
    Intent appLinkIntent = getIntent();
    String appLinkAction = appLinkIntent.getAction();
    Uri appLinkData = appLinkIntent.getData();
    

Sin embargo, este código no está completo por sí solo. Ahora debes realizar una acción en función del URI de appLinkData, como mostrar el contenido correspondiente. Por ejemplo, el código de la app para compartir recetas podría ser similar al del siguiente ejemplo:

Kotlin

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        ...
        handleIntent(intent)
    }

    override fun onNewIntent(intent: Intent) {
        super.onNewIntent(intent)
        handleIntent(intent)
    }

    private fun handleIntent(intent: Intent) {
        val appLinkAction = intent.action
        val appLinkData: Uri? = intent.data
        if (Intent.ACTION_VIEW == appLinkAction) {
            appLinkData?.lastPathSegment?.also { recipeId ->
                Uri.parse("content://com.recipe_app/recipe/")
                        .buildUpon()
                        .appendPath(recipeId)
                        .build().also { appData ->
                            showRecipe(appData)
                        }
            }
        }
    }
    

Java

    protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      ...
      handleIntent(getIntent());
    }

    protected void onNewIntent(Intent intent) {
      super.onNewIntent(intent);
      handleIntent(intent);
    }

    private void handleIntent(Intent intent) {
        String appLinkAction = intent.getAction();
        Uri appLinkData = intent.getData();
        if (Intent.ACTION_VIEW.equals(appLinkAction) && appLinkData != null){
            String recipeId = appLinkData.getLastPathSegment();
            Uri appData = Uri.parse("content://com.recipe_app/recipe/").buildUpon()
                .appendPath(recipeId).build();
            showRecipe(appData);
        }
    }
    

Cómo asociar tu app con tu sitio web

Después de configurar la compatibilidad de URL para tu app, App Links Assistant genera un archivo de Digital Asset Links que puedes usar para asociar tu sitio web con tu app.

Como alternativa al uso del archivo de Digital Asset Links, puedes asociar tu sitio y tu app en Search Console.

Para asociar tu app y tu sitio web con App Links Assistant, haz clic en Abrir generador de archivos de Digital Asset Links y sigue los pasos que aparecen a continuación:

El App Links Assistant te guía en el proceso básico para asignar URL

Figura 2: Ingresa los detalles sobre tu sitio y app para generar un archivo de Digital Asset Links.

  1. Ingresa el Dominio del sitio y tu ID de aplicación.
  2. A fin de incluir compatibilidad en tu archivo de Digital Asset Links para Smart Lock para contraseñas, selecciona Admitir el uso compartido de credenciales entre la app y el sitio web y, luego, ingresa la URL de acceso de tu sitio. De esta manera, se agrega la siguiente string a tu archivo de Digital Asset Links que declara que tu app y sitio web comparten credenciales de acceso: delegate_permission/common.get_login_creds. Obtén más información sobre la compatibilidad de Smart Lock para contraseñas en tu app.
  3. Especifica la configuración de firmas en Signing Config o selecciona un archivo de almacén de claves. Asegúrate de seleccionar el archivo correcto de configuración o de almacén de claves para la compilación de lanzamiento o la compilación de depuración de tu app. Si quieres configurar tu compilación de producción, usa la configuración de lanzamiento. Si quieres probar tu compilación, usa la configuración de depuración.
  4. Haz clic en Generar archivo de Digital Asset Links.
  5. Una vez que Android Studio genere el archivo, haz clic en Guardar archivo para descargarlo.
  6. Sube el archivo assetlinks.json a tu sitio, con acceso de lectura para todos, en https://<yoursite>/.well-known/assetlinks.json.

    Importante: El sistema verifica el archivo de Digital Asset Links mediante el protocolo HTTPS encriptado. Asegúrate de que pueda acceder al archivo assetlinks.json mediante una conexión HTTPS, sin importar si el filtro de intent de tu app incluye https.

  7. Haz clic en Vincular y verificar para confirmar que subiste el archivo correcto de Digital Asset Links en la ubicación correspondiente.

Obtén más información sobre cómo asociar tu sitio web con tu app mediante el archivo de Digital Asset Links en Cómo declarar la asociación de sitios web.

Cómo probar tus vínculos de apps

Para verificar que tus vínculos abran la actividad correcta, sigue estos pasos:

  1. Haz clic en Probar vínculos de apps en App Links Assistant.
  2. Ingresa la URL que quieres probar en el campo URL, por ejemplo, http://recipe-app.com/recipe/grilled-potato-salad.
  3. Figura 3: App Links Assistant muestra un mensaje de éxito y abre tu app en el contenido especificado cuando la URL que estás probando se asigna correctamente a una actividad de tu app.

  4. Haz clic en Ejecutar prueba.
  5. Si la asignación de URL no está configurada correctamente o no existe, aparecerá un mensaje de error debajo de la URL en la ventana Probar vínculos de apps. Si existe la asignación de URL, Android Studio inicia tu app en el dispositivo o emulador en la actividad especificada sin mostrar el diálogo de desambiguación ("selector de aplicación"), y muestra un mensaje de éxito en la ventana Prueba de vínculos de apps. Si Android Studio no puede iniciar la app correctamente, aparecerá un mensaje de error en la ventana Ejecutar de Android Studio.

Para probar Android App Links con App Links Assistant, debes tener un dispositivo conectado a un dispositivo virtual disponible que ejecute Android 6.0 (nivel de API 23) o versiones posteriores. Para obtener más información, consulta cómo conectar un dispositivo o crear un AVD.

Cómo agregar la indexación de aplicaciones de Firebase

Después de agregar Android App Links a tu app, puedes agregar el código de indexación de aplicaciones de Firebase a una actividad para lograr que los usuarios regresen a tu app desde las funciones adicionales de la Búsqueda de Google, que incluyen sugerencias de autocompletar y búsquedas dentro de las apps. Obtén más información sobre este tema en la documentación de indexación de aplicaciones de Firebase.

Para agregar la indexación de aplicaciones de Firebase a tu app, usa el Firebase Assistant en Android Studio y expande la sección App Indexing a fin de obtener instrucciones paso a paso.