1. Code
  2. Coding Fundamentals
  3. Tools

Cómo habilitar enlaces profundos en Android

Scroll to top

Spanish (Español) translation by Andrea Jiménez (you can also view the original English article)

¿Qué son los enlaces profundos?

Los enlaces profundos de Android abren una página específica dentro de una aplicación y, opcionalmente, le pasan datos. Los desarrolladores pueden encontrar enlaces profundos particularmente útiles para acciones, como hacer clic en una notificación o enviar un enlace de aplicación por correo electrónico.

Tomemos un cliente de correo electrónico como ejemplo. Cuando el usuario hace clic en la notificación de un correo electrónico que recibió, se abre un enlace profundo que lo lleva al correo electrónico en la aplicación. Por último, pero no menos importante, los enlaces profundos también le permiten a Google indexar tu aplicación y vincularla a secciones específicas de tu aplicación en las búsquedas. El enlace profundo aparece como un resultado de búsqueda en Google y puede llevar al usuario a una sección determinada de la aplicación.

Implementación de enlaces profundos

Para agregar un enlace profundo a tu aplicación, debes agregarlo a tu archivo de manifiesto de Android como un filtro de intención. Revisa el siguiente ejemplo.

1
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name"
2
    android:supportsRtl="true" android:theme="@style/AppTheme">
3
    <activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@style/AppTheme.NoActionBar">
4
        <intent-filter>
5
            <!-- Notice that the MAIN activity already has an intent-filter. This is not

6
            A deep link because its action is not a VIEW-->
7
            <action android:name="android.intent.action.MAIN" />
8
            <category android:name="android.intent.category.LAUNCHER" />
9
        </intent-filter>
10
    </activity>
11
    <activity android:name="com.example.matthew.deeplinks.LinkActivity" android:label="@string/title_activity_link"
12
        android:theme="@style/AppTheme.NoActionBar">
13
        <intent-filter>
14
            <!-- Sets the intent action to view the activity -->
15
            <action android:name="android.intent.action.VIEW" />
16
            <!-- Allows the link to be opened from a web browser -->
17
            <category android:name="android.intent.category.BROWSABLE" />
18
            <!-- Allows the deep link to be used without specifying the app name -->
19
            <category android:name="android.intent.category.DEFAULT" />
20
            <!-- URI tutsplus://deeplink -->
21
            <data android:scheme="tutsplus" android:host="deeplink"/>
22
            <!-- URI https://www.mydeeplink.com -->
23
            <data android:scheme="http" android:host="www.mydeeplink.com"/>
24
        </intent-filter>
25
    </activity>
26
</application>

Las etiquetas <action> y <data> son obligatorias. La etiqueta <action> elige lo que sucede en la aplicación cuando se hace clic en el enlace. La etiqueta <data> especifica qué URI son aceptables como enlaces profundos a la página.

En el ejemplo anterior, navegar en http://www.mydeeplink.com o en tutsplus://deeplink lleva al usuario a la actividad LinkActivity. Las etiquetas <category> especifican las propiedades del enlace profundo. Ten en cuenta que debes crear un filtro de intención independiente para cada esquema de URI y cada actividad.

Puedes crear varios enlaces a la misma actividad. Para diferenciarlos, debes analizar los datos de la intención en el código para diferenciar los enlaces. Esto se hace generalmente en el método onCreate() leyendo los datos y actuando en consecuencia.

1
protected void onCreate(Bundle savedInstanceState) {
2
        super.onCreate(savedInstanceState);
3
        setContentView(R.layout.activity_link);
4
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
5
        setSupportActionBar(toolbar);
6
7
        Intent in = getIntent();
8
        Uri data = in.getData();
9
        // Do something with data. For example, open certain email in view.

10
    }

Prueba de los enlaces profundos

Android Studio facilita la prueba de enlaces profundos. Haz clic en Ejecutar > Editar configuraciones para editar la configuración del proyecto.

Testing Deep LinksTesting Deep LinksTesting Deep Links
Testing Deep LinksTesting Deep LinksTesting Deep Links

Abre la pestaña General en la parte superior e introduce el URI en el campo Enlace profundo de la sección Opciones de inicio. Al iniciar tu aplicación con Android Studio, intentará abrir el URI especificado.

Conclusión

Ya que sabes cómo crear y usar enlaces profundos, puedes abrir nuevos puntos de entrada para que los usuarios interactúen con tu aplicación. Los usuarios pueden utilizar la búsqueda de Google en sus teléfonos para encontrar páginas dentro de tu aplicación y puedas crear notificaciones que abren una página específica en tu aplicación cuando se hace clic en ellas.