La Vista previa para desarrolladores de Android 11 ya está disponible. Pruébala y comparte tus comentarios.

Cómo agregar Android App Links

Los Android App Links son URL de HTTP que acercan a los usuarios al contenido específico de 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 las versiones posteriores simplifican 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 Tools > App Links Assistant.
  2. Haz clic en Open URL Mapping Editor y, a continuación, en Add  en la parte inferior de la lista URL Mapping para agregar una nueva asignación.
  3. Agrega detalles para la nueva asignación de URL:
    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 quieras 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 asignará la URL http://www.recipe-app.com/recipe/grilled-potato-salad a la actividad que selecciones en el siguiente paso.
    3. En Activity, selecciona la actividad a la que los usuarios llegarán mediante la URL.
    4. Haz clic en OK.
  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 Preview. Si deseas realizar algún cambio, haz clic en Open AndroidManifest.xml para editar el filtro de intent. (Obtén más información acerca de los filtros de intents 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 Check URL Mapping y haz clic en Check Mapping. 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 Select Activity 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 Open Digital Asset Links File Generator y sigue los pasos que aparecen a continuación:

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 Support sharing credentials between the app and the website e ingresa la URL de acceso de tu sitio. De esta manera, se agrega la siguiente string al archivo de Digital Asset Links que declara que tu app y tu 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 la 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 Generate Digital Asset Links file.
  5. Una vez que Android Studio genere el archivo, haz clic en Save file 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 sea posible acceder al archivo assetlinks.json mediante una conexión HTTPS, independientemente de si el filtro de intents de tu app incluye https.

  7. Haz clic en Link and Verify para confirmar que subiste el archivo correcto de Digital Asset Links a 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 Test App Links 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 Run Test.
  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 Test App Links. 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 App Link Testing. Si Android Studio no puede iniciar correctamente la app, aparecerá un mensaje de error en la ventana Run 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 (API nivel 23) o versiones posteriores. Para obtener más información, consulta las secciones sobre cómo conectar un dispositivo o crear un AVD.

Cómo agregar Firebase App Indexing

Después de agregar Android App Links a tu app, puedes agregar el código de Firebase App Indexing 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 Firebase App Indexing.

Para agregar Firebase App Indexing 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.