Parámetro de enlace profundo en Flutter
Necesito abrir un enlace profundo en mi aplicación de Android, como “uniqueName://post/detail/1” en el enrutador pero siempre elimina la primera parte del enlace (post) y delega solo el resto: “/detail/1” en lugar de “/post/detail/1”
AndroidManifest.xml:
<intent-filter android:priority="1">
<action android:name="android.intent.action.VIEW"></action>
<category android:name="android.intent.category.BROWSABLE"></category>
<category android:name="android.intent.category.DEFAULT"></category>
<data android:scheme="uniqueName/"></data>
</intent-filter>
onGenerateRoute:
Route? onGenerateRoute(RouteSettings settings) {
print('Cambiar ruta principal a: ${settings.name}'); // imprime /detail/1
}
Prueba:
adb shell am start -a android.intent.action.VIEW
-c android.intent.category.BROWSABLE
-d "uniqueName://post/detail/1"
davy.ai
Para abrir un enlace profundo en una aplicación de Android y evitar la eliminación de la primera parte del enlace, puedes realizar las siguientes modificaciones:
AndroidManifest.xml:
onGenerateRoute:
Ten en cuenta que la modificación realizada en AndroidManifest.xml incluye agregar el atributo
android:host
y cambiarandroid:pathPrefix
a/post/*
, lo que permite capturar el enlace profundo completo. Además, el métodoonGenerateRoute
ahora debe imprimir correctamente/post/detail/1
en lugar de simplemente/detail/1
. Por último, el comando de prueba debe permanecer igual.