J'ai essayé d'ajouter un lien dynamique à mon flutter Android (non publiée) qui est en mode débogage et s'exécute sur un appareil physique. Firebase configuré, liens dynamiques dans la console Firebase. Tout fonctionne comme prévu sauf un. Lorsque deeplink ( https://www.mywebsite.com/deep-link-page ) est cliqué directement de n'importe où, il n'ouvre pas l'application. en cliquant sur le lien dynamique https: //myapp.page.link ouvre l'application comme prévu.
final DynamicLinkParameters parameters = DynamicLinkParameters(
uriPrefix: 'https://freshakaka.page.link',
link: Uri.parse('https://freshakaka.page.link/helloworld'),
androidParameters: AndroidParameters(
packageName: 'com.freshakaka.flutter',
minimumVersion: 0,
),
dynamicLinkParametersOptions: DynamicLinkParametersOptions(
shortDynamicLinkPathLength: ShortDynamicLinkPathLength.short,
),
iosParameters: IosParameters(
bundleId: 'com.google.FirebaseCppDynamicLinksTestApp.dev',
minimumVersion: '0',
),
);
Comme vous le voyez dans l'image - https://kannadaclub.com/2019/10/17/seltos-50k-bookings/ est mon lien profond. lorsque ce lien est cliqué depuis un mobile, il ouvre toujours le site Web, pas l'application.
Vous devez ajouter ce intent-filter
lors de votre première activité d'ouverture dans le manifeste,
<activity Android:name="your default activity">
<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="freshakaka.page.link"
Android:scheme="https" />
</intent-filter>
</activity>
élaborer:
Vous devez rechercher AndroidManifest.xml dans votre projet lorsque vous le découvrez, vous verrez quelque chose comme ça
<activity
Android:name=".MainActivity"
Android:windowSoftInputMode="adjustResize">
<intent-filter>
<action Android:name="Android.intent.action.MAIN"/>
<category Android:name="Android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
Il s'agit de la première activité d'ouverture car elle a le intent-filter
qui contient la catégorie LAUNCHER
, ce qui signifie que votre application démarrera à partir de cette activité, vous devez donc ajouter le intent-filter
que j'avais fourni ci-dessus, comme ceci
<activity
Android:name=".MainActivity"
Android:windowSoftInputMode="adjustResize">
<intent-filter>
<action Android:name="Android.intent.action.MAIN"/>
<category Android:name="Android.intent.category.LAUNCHER"/>
</intent-filter>
<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="freshakaka.page.link"
Android:scheme="https" />
</intent-filter>
</activity>
Vous pouvez également vérifier cela pour l'explication plus explicite
https://firebase.google.com/docs/dynamic-links/Android/receive