Vous pouvez créer des liens dynamiques courts ou longs avec l'API Firebase Dynamic Links Builder. Cette API accepte un lien dynamique long ou un objet contenant des paramètres de lien dynamique, et renvoie des URL comme dans les exemples suivants :
https://example.com/link/WXYZ
https://example.page.link/WXYZ
Configurer Firebase et le SDK Dynamic Links
Avant de pouvoir créer des liens dynamiques dans votre application Android, vous devez inclure le SDK Firebase. Si votre application est configurée pour recevoir des liens dynamiques, vous avez déjà effectué ces étapes et vous pouvez ignorer cette section.
Installez et initialisez les SDK Firebase pour Flutter si ce n'est pas déjà fait.
À partir du répertoire racine de votre projet Flutter, exécutez la commande suivante pour installer le plug-in Dynamic Links :
flutter pub add firebase_dynamic_links
Si vous développez une application Android, ouvrez la page Paramètres du projet de la console Firebase et assurez-vous d'avoir spécifié votre clé de signature SHA-1. Si vous utilisez des liens d'application, spécifiez également votre clé SHA-256.
Dans la console Firebase, ouvrez la section Liens dynamiques.
Si vous n'avez pas encore configuré de domaine pour vos liens dynamiques, cliquez sur le bouton Premiers pas et suivez les instructions.
Si vous possédez déjà un domaine Dynamic Links, notez-le. Vous devez fournir un domaine Dynamic Links lorsque vous créez des liens dynamiques de manière programmatique.
Recommandé : Dans le menu "Plus" (⋮), spécifiez les formats d'URL autorisés pour vos liens profonds et liens de remplacement. Vous empêchez ainsi des tiers non autorisés de créer des liens dynamiques qui redirigent de votre domaine vers des sites que vous ne contrôlez pas.
Consultez Autoriser des modèles d'URL spécifiques.
Créer un lien dynamique à partir de paramètres
Pour créer un lien dynamique, créez un objet DynamicLinkParameters
et transmettez-le à buildLink()
ou buildShortLink()
.
L'exemple minimal suivant crée un lien dynamique long vers https://www.example.com/
qui s'ouvre avec com.example.app.android
sur Android et l'application com.example.app.ios
sur iOS :
final dynamicLinkParams = DynamicLinkParameters(
link: Uri.parse("https://www.example.com/"),
uriPrefix: "https://example.page.link",
androidParameters: const AndroidParameters(packageName: "com.example.app.android"),
iosParameters: const IOSParameters(bundleId: "com.example.app.ios"),
);
final dynamicLink =
await FirebaseDynamicLinks.instance.buildLink(dynamicLinkParams);
Pour créer un lien dynamique court, transmettez l'objet DynamicLinkParameters
à buildShortLink()
. La création du lien court nécessite un appel réseau.
Exemple :
final dynamicLinkParams = DynamicLinkParameters(
link: Uri.parse("https://www.example.com/"),
uriPrefix: "https://example.page.link",
androidParameters: const AndroidParameters(packageName: "com.example.app.android"),
iosParameters: const IOSParameters(bundleId: "com.example.app.ios"),
);
final dynamicLink =
await FirebaseDynamicLinks.instance.buildShortLink(dynamicLinkParams);
Par défaut, les liens dynamiques courts sont générés avec des suffixes de quelques caractères seulement. Bien que cela rende les liens plus compacts, cela permet également à une personne de deviner un lien raccourci valide. Souvent, cela ne pose pas de problème, car le lien redirige vers des informations publiques.
Toutefois, si vos liens courts redirigent vers des informations spécifiques à l'utilisateur, vous devez créer des liens plus longs avec des suffixes de 17 caractères. Il sera ainsi très peu probable qu'une personne puisse deviner un lien dynamique valide. Pour ce faire, transmettez ShortDynamicLinkType.unguessable
à la méthode buildShortLink()
:
final unguessableDynamicLink = await FirebaseDynamicLinks.instance.buildShortLink(
dynamicLinkParams,
shortLinkType: ShortDynamicLinkType.unguessable,
);
Paramètres Dynamic Links
Vous pouvez utiliser l'API Dynamic Link Builder pour créer des liens dynamiques avec l'un des paramètres compatibles. Consultez la documentation de référence sur l'API.
L'exemple suivant crée un lien dynamique avec plusieurs paramètres courants définis :
final dynamicLinkParams = DynamicLinkParameters(
link: Uri.parse("https://www.example.com/"),
uriPrefix: "https://example.page.link",
androidParameters: const AndroidParameters(
packageName: "com.example.app.android",
minimumVersion: 30,
),
iosParameters: const IOSParameters(
bundleId: "com.example.app.ios",
appStoreId: "123456789",
minimumVersion: "1.0.1",
),
googleAnalyticsParameters: const GoogleAnalyticsParameters(
source: "twitter",
medium: "social",
campaign: "example-promo",
),
socialMetaTagParameters: SocialMetaTagParameters(
title: "Example of a Dynamic Link",
imageUrl: Uri.parse("https://example.com/image.png"),
),
);
final dynamicLink =
await FirebaseDynamicLinks.instance.buildShortLink(dynamicLinkParams);
Vous pouvez définir des paramètres Dynamic Links à l'aide des méthodes suivantes :
Paramètres Dynamic Link | |
---|---|
setLink | Lien que votre application ouvrira. Spécifiez une URL que votre application peut gérer, généralement le contenu ou la charge utile de l'application, qui déclenche une logique spécifique à l'application (par exemple, créditer un bon de réduction à l'utilisateur ou afficher un écran d'accueil). Ce lien doit être une URL bien mise en forme, correctement encodée pour les URL, utiliser HTTP ou HTTPS, et ne pas être un autre lien dynamique. |
setDomainUriPrefix | Le préfixe d'URL de votre lien dynamique, que vous trouverez dans la console Firebase. Voici quelques exemples de domaines Dynamic Links :
https://example.com/link https://example.page.link |
AndroidParameters | |
---|---|
setFallbackUrl | Lien à ouvrir lorsque l'application n'est pas installée. Spécifiez cette action pour faire autre chose que d'installer votre application depuis le Play Store lorsque l'application n'est pas installée, par exemple ouvrir la version Web mobile du contenu ou afficher une page promotionnelle pour votre application. |
setMinimumVersion | Le versionCode de la version minimale de votre application qui peut ouvrir le lien. Si l'application installée est une ancienne version, l'utilisateur est redirigé vers le Play Store pour la mettre à jour. |
IosParameters | |
---|---|
setAppStoreId | ID App Store de votre application, utilisé pour rediriger les utilisateurs vers l'App Store lorsque l'application n'est pas installée |
setFallbackUrl | Lien à ouvrir lorsque l'application n'est pas installée. Spécifiez cette option pour effectuer une action autre que l'installation de votre application depuis l'App Store lorsque l'application n'est pas installée. Par exemple, ouvrez la version Web mobile du contenu ou affichez une page promotionnelle pour votre application. |
setCustomScheme | Schéma d'URL personnalisé de votre application, s'il est défini sur une valeur autre que l'ID du bundle de votre application |
setIpadFallbackUrl | Lien à ouvrir sur les iPad lorsque l'application n'est pas installée. Spécifiez cette valeur pour effectuer une action autre que l'installation de votre application depuis l'App Store lorsque l'application n'est pas installée. Par exemple, ouvrez la version Web du contenu ou affichez une page promotionnelle pour votre application. |
setIpadBundleId | ID du bundle de l'application iOS à utiliser sur les iPad pour ouvrir le lien. L'application doit être associée à votre projet depuis la page "Présentation" de la console Firebase. |
setMinimumVersion | Numéro de version minimale de votre application pouvant ouvrir le lien. Ce signal est transmis à votre application lorsqu'elle est ouverte, et votre application doit décider quoi en faire. |
NavigationInfoParameters | |
---|---|
setForcedRedirectEnabled | Si la valeur est définie sur "1", la page d'aperçu de l'application est ignorée lorsque le lien dynamique est ouvert, et l'utilisateur est redirigé vers l'application ou le Play Store. La page d'aperçu de l'application (activée par défaut) peut rediriger les utilisateurs de manière plus fiable vers la destination la plus appropriée lorsqu'ils ouvrent des liens dynamiques dans des applications. Toutefois, si vous prévoyez qu'un lien dynamique ne sera ouvert que dans des applications capables d'ouvrir des liens dynamiques de manière fiable sans cette page, vous pouvez la désactiver avec ce paramètre. Ce paramètre n'affecte le comportement du lien dynamique que sur iOS. |
SocialMetaTagParameters | |
---|---|
setTitle | Titre à utiliser lorsque le lien dynamique est partagé dans un post sur les réseaux sociaux. |
setDescription | Description à utiliser lorsque le lien dynamique est partagé dans un post sur les réseaux sociaux. |
setImageUrl | URL d'une image associée à ce lien. L'image doit faire au moins 300 x 200 pixels et moins de 300 Ko. |
GoogleAnalyticsParameters | |
---|---|
setSource setMedium setCampaign setTerm setContent |
Paramètres d'analyse Google Play. Ces paramètres (`utm_source`, `utm_medium`, `utm_campaign`, `utm_term`, `utm_content`) sont transmis au Play Store et ajoutés au payload du lien. |
ItunesConnectAnalyticsParameters | |
---|---|
setProviderToken setAffiliateToken setCampaignToken |
Paramètres d'analyse iTunes Connect. Ces paramètres (`pt`, `at`, `ct`) sont transmis à l'App Store. |