Créer des liens dynamiques dans une application Flutter

Vous pouvez créer des liens dynamiques courts ou longs avec l'API Firebase Dynamic Links. Cette API accepte les liens dynamiques longs ou un objet contenant ce lien et renvoie des URL semblables aux exemples suivants:

https://example.com/link/WXYZ
https://example.page.link/WXYZ

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à que vous avez suivi ces étapes. Vous pouvez ignorer cette section.

  1. Installez et initialisez les SDK Firebase pour Flutter si vous : ne l'avez pas déjà fait.

  2. Depuis le 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
    
  3. Si vous créez une application Android, ouvrez les paramètres du projet de la console Firebase et assurez-vous d'avoir spécifié votre certificat SHA-1 clé de signature. Si vous utilisez des liens d'application, spécifiez également votre clé SHA-256.

  4. Dans la console Firebase, ouvrez la page Dynamic Links .

    1. Si vous n'avez pas encore configuré de domaine pour vos liens dynamiques, cliquez sur l'icône Commencer et suivez les instructions.

      Si vous possédez déjà un domaine Dynamic Links, prenez-en note. Vous devez fournir un domaine Dynamic Links lorsque vous créez des liens dynamiques par programmation.

    2. Recommandé: cliquez sur "Plus". (⋮), spécifiez l'URL autorisés dans 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 la section Autoriser des formats d'URL spécifiques.

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 qui ne représentent que quelques caractères. Bien que les liens soient plus compacts, cela introduit également la possibilité que quelqu'un puisse deviner un lien court valide. Souvent, il n'y a pas car le lien mène à une information publique.

Cependant, si vos liens courts mènent à des informations spécifiques à l'utilisateur, vous devez créent des liens plus longs avec des suffixes de 17 caractères, ce qui rend très peu probable que quelqu'un 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,
);

L'API Dynamic Link Builder vous permet de créer des liens dynamiques avec n'importe quel paramètres acceptés. Consultez la documentation de référence sur l'API.

L'exemple suivant crée un lien dynamique avec plusieurs paramètres courants. ensemble:

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 les paramètres des liens dynamiques à l'aide des méthodes suivantes:

Paramètres DynamicLink
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, ce qui lance une requête (par exemple, en créditant l'utilisateur d'un bon de réduction ou en affichant un écran d'accueil). Ce lien doit être au format approprié, être correctement formaté Elle est encodée au format URL, utilise HTTP ou HTTPS, et ne peut pas être un autre type Lien.
setDomainUriPrefix Le préfixe de l'URL de votre lien dynamique, disponible dans la console Firebase. Un domaine de lien dynamique se présente comme suit :
https://example.com/link
https://example.page.link
ParamètresAndroid
setFallbackUrl Lien à ouvrir lorsque l'application n'est pas installée. Indiquer cette tâche autre que d'installer votre application depuis le Play Store lorsque celle-ci n'est pas installé. Par exemple, il peut ouvrir la version Web mobile du contenu ; afficher une page promotionnelle pour votre application.
setMinimumVersion Code de version de la version minimale de votre application pouvant ouvrir le . Si l'application installée est une version plus ancienne, l'utilisateur est redirigé vers le Play Store pour mettre à niveau l'application.
Paramètres IOS
setAppStoreId ID App Store de votre application, utilisé pour rediriger les utilisateurs vers l'App Store lorsque la l'application n'est pas installée
setFallbackUrl Lien à ouvrir 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 lorsqu'elle n'est pas installée, par exemple ouvrir la version Web mobile du contenu ou afficher une page promotionnelle pour votre application.
setCustomScheme Le schéma d'URL personnalisée de votre application, s'il n'est pas défini 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 celle-ci n'est pas installée, par exemple ouvrir la version Web du contenu ou afficher une page promotionnelle pour votre application.
setIpadBundleId ID du bundle de l'application iOS à utiliser sur un iPad pour ouvrir le lien. L'application doit être associée à votre projet depuis la page "Vue d'ensemble" de la console Firebase.
setMinimumVersion Numéro de version de la version minimale de votre application pouvant ouvrir le . Cet indicateur est transmis à votre appli lorsqu'elle est ouverte, et votre appli doit décider quoi en faire.
NavigationInfoParameters
setForcedRedirectEnabled Si la valeur est définie sur "1", ignorez la page d'aperçu de l'application lorsque le lien dynamique est ouvert, et redirige à la place vers l'application ou la plate-forme de téléchargement. Page d'aperçu de l'application (activé par défaut) peut diriger de manière plus fiable les utilisateurs vers les la destination appropriée lorsqu'ils ouvrent des liens dynamiques dans des applications ; Toutefois, si vous pensez qu'un lien dynamique ne sera ouvert que dans des applications pouvant s'ouvrir Dynamic Links sans cette page, vous pouvez le désactiver avec ce . Ce paramètre a une incidence sur le comportement du lien dynamique uniquement sur iOS.
SocialMetaTagParameters
setTitle Titre à utiliser lorsque le lien dynamique est partagé dans un post sur les réseaux sociaux.
description_ensemble Description à utiliser lorsque le lien dynamique est partagé dans un post sur un réseau social.
setImageUrl URL d'une image associée à ce lien. L'image doit présenter au moins 300 x 200 px et moins de 300 Ko.
ParamètresGoogleAnalytics
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 à la charge utile du lien.
ItunesConnectAnalyticsParameters
setProviderToken
setAffiliateToken
setCampaignToken
Paramètres d'analyse iTunes Connect. Ces paramètres ("pt", `at`, `ct`) sont transmises à l'App Store.