Los enlaces profundos se ven en la mayoría de las aplicaciones donde los usuarios pueden usar estos enlaces para redirigir a cualquier pantalla o actividad específica dentro de la aplicación. También podemos pasar datos usando estos enlaces dentro de nuestra aplicación. En este artículo, veremos la implementación de enlaces profundos en aplicaciones de Android usando Kotlin.
Nota : si está buscando implementar Deep Links en Android usando Java. Enlaces profundos en Android usando Java
Implementación paso a paso
Paso 1: crea un nuevo proyecto en Android Studio
Cómo crear/iniciar un nuevo proyecto en Android Studio
Paso 2: trabajar con el archivo activity_main.xml
Vaya a la aplicación > res > diseño > actividad_principal.xml y agregue el siguiente código a ese archivo. A continuación se muestra el código para el archivo activity_main.xml.
XML
<?xml version="1.0" encoding="utf-8"?> <!--on below line we are creating a swipe to refresh layout--> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true" android:orientation="vertical" tools:context=".MainActivity"> <!--text view for displaying heading--> <TextView android:id="@+id/idTVHead" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_above="@id/idTVMsg" android:layout_margin="4dp" android:gravity="center" android:padding="4dp" android:text="@string/app_name" android:textAlignment="center" android:textColor="@color/purple_200" android:textSize="20sp" android:textStyle="bold" /> <!--text view for displaying a message--> <TextView android:id="@+id/idTVMsg" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerInParent="true" android:layout_margin="20dp" android:padding="4dp" android:text="Message" android:textAlignment="center" android:textAllCaps="false" android:textColor="@color/purple_200" android:textSize="20sp" android:textStyle="bold" /> </RelativeLayout>
Paso 3: trabajar con el archivo AndroidManifest.xml
Vaya a la aplicación > AndroidManifest.xml y agréguele el siguiente código. Como estamos creando un enlace profundo para nuestro archivo MainActivity.kt, tenemos que agregar este código en la parte MainActivity. A continuación se muestra el código que se agregará en el archivo AndroidManifext.xml. Se agregan comentarios en el código para conocer con más detalle.
XML
<!--as we want to open main activity from our link so we are specifying only in main activity or we can specify that in different activity as well on below line we are adding intent filter to our MainActivity--> <intent-filter> <!--below line is to set the action to our intent to view--> <action android:name="android.intent.action.VIEW" /> <!--on below line we are adding a default category to our intent--> <category android:name="android.intent.category.DEFAULT" /> <!--on below line we are adding a category to make our app browsable--> <category android:name="android.intent.category.BROWSABLE" /> <!--on below line we are specifying the host name and the scheme type from which we will be calling our app--> <data android:host="www.chaitanyamunje.com" android:scheme="https" /> </intent-filter> <!--below is the same filter as above just the scheme is changed to http --> <!--so we can open our app with the url starting with https and http as well--> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:host="www.chaitanyamunje.com" android:scheme="http" /> </intent-filter>
A continuación se muestra el código completo del archivo AndroidManifest.xml.
XML
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.gtappdevelopers.kotlingfgproject"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.KotlinGFGProject" android:usesCleartextTraffic="true"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <!--as we want to open main activity from our link so we are specifying only in main activity or we can specify that in different activity as well--> <!--on below line we are adding intent filter to our MainActivity--> <intent-filter> <!--below line is to set the action to our intent to view--> <action android:name="android.intent.action.VIEW" /> <!--on below line we are adding a default category to our intent--> <category android:name="android.intent.category.DEFAULT" /> <!--on below line we are adding a category to make our app browsable--> <category android:name="android.intent.category.BROWSABLE" /> <!--on below line we are specifying the host name and the scheme type from which we will be calling our app--> <data android:host="www.chaitanyamunje.com" android:scheme="https" /> </intent-filter> <!--below is the same filter as above just the scheme is changed to http --> <!--so we can open our app with the url starting with https and http as well--> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:host="www.chaitanyamunje.com" android:scheme="http" /> </intent-filter> </activity> </application> </manifest>
Paso 4: trabajar con el archivo MainActivity.kt
Vaya a aplicación>java>nombre del paquete de su aplicación>archivo MainActivity.kt y agréguele el siguiente código. Se agregan comentarios en el código para conocer en detalle.
Kotlin
package com.gtappdevelopers.kotlingfgproject import android.net.Uri import android.os.Bundle import android.widget.TextView import androidx.appcompat.app.AppCompatActivity class MainActivity : AppCompatActivity() { // on below line we are creating // variables for our text view lateinit var msgTV: TextView override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // on below line we are initializing // our variable with their ids. msgTV = findViewById(R.id.idTVMsg) // getting the data from our // intent in our uri. val uri: Uri? = intent.data // checking if the uri is null or not. if (uri != null) { // if the uri is not null then we are getting the // path segments and storing it in list. val parameters: List<String> = uri.getPathSegments() // after that we are extracting string from that parameters. val param = parameters[parameters.size - 1] // on below line we are setting // that string to our text view // which we got as params. msgTV.setText(param) } } }
Ahora ejecute su aplicación para ver el resultado.
Producción:
Publicación traducida automáticamente
Artículo escrito por chaitanyamunje y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA