Vous pouvez créer des Dynamic Links courts ou longs avec l'API Firebase Dynamic Links. L'API utilise plusieurs structures de paramètres facultatives pour créer des liens. Les liens courts peuvent également être créés à partir d'un lien long généré précédemment. Firebase Dynamic Links génère une URL semblable à celle-ci :
https://example.page.link/WXYZ
Le SDK C++ fonctionne à la fois pour Android et iOS, avec une configuration supplémentaire requise pour chaque plate-forme.
Avant de commencer
Avant de pouvoir utiliser Firebase Dynamic Links, vous devez :
Enregistrez votre projet C++ et configurez-le pour utiliser Firebase.
Si votre projet C++ utilise déjà Firebase, il est déjà enregistré et configuré pour Firebase.
Ajoutez le SDK Firebase C++ à votre projet C++.
Notez que l'ajout de Firebase à votre projet C++ implique des tâches à la fois dans la console Firebase et dans votre projet C++ ouvert (par exemple, vous téléchargez des fichiers de configuration Firebase depuis la console, puis vous les déplacez dans votre projet C++).
Android
- Dans la console Firebase, ouvrez la section Dynamic Links.
Si vous n'avez pas encore accepté les conditions d'utilisation et défini un préfixe d'URI pour votre Dynamic Links, faites-le lorsque vous y êtes invité.
Si vous disposez déjà d'un préfixe d'URI Dynamic Links, notez-le. Vous devez fournir un préfixe d'URI Dynamic Links lorsque vous créez un Dynamic Links de manière programmatique.

- Recommandé : spécifiez les formats d'URL autorisés dans vos liens profonds et liens de remplacement. Vous empêchez ainsi les tiers non autorisés de créer des Dynamic Links qui redirigent les utilisateurs de votre domaine vers des sites que vous ne contrôlez pas. Consultez Autoriser des formats d'URL spécifiques.
iOS
- Dans la console Firebase, ouvrez la section Dynamic Links.
Si vous n'avez pas encore accepté les conditions d'utilisation et défini un préfixe d'URI pour votre Dynamic Links, faites-le lorsque vous y êtes invité.
Si vous disposez déjà d'un préfixe d'URI Dynamic Links, notez-le. Vous devez fournir un domaine Dynamic Links lorsque vous créez Dynamic Links de manière programmatique.

- La bibliothèque cliente C++ Firebase Dynamic Links utilise des schémas d'URL personnalisés sur iOS pour traiter les liens. Vous devez ajouter des schémas d'URL personnalisés à votre application pour qu'elle puisse recevoir Dynamic Links :
- Pour ouvrir la configuration de votre projet, double-cliquez sur le nom du projet dans l'arborescence de gauche. Sélectionnez votre application dans la section TARGETS (CIBLES), puis sélectionnez l'onglet Info (Informations) et développez la section URL Types (Types d'URL).
- Cliquez sur le bouton +, puis ajoutez un schéma d'URL pour votre ID client inversé. Pour trouver cette valeur, ouvrez le fichier de configuration
et recherchez la cléGoogleService-Info.plist REVERSED_CLIENT_ID. Copiez la valeur de cette clé et collez-la dans le champ Schémas d'URL de la page de configuration. Laissez les autres champs vides. - Cliquez sur le bouton +, puis ajoutez un deuxième schéma d'URL. Il s'agit du même ID que celui du bundle de votre application. Par exemple, si l'ID de votre bundle est
com.example.ios, saisissez cette valeur dans le champ URL Schemes (Schémas d'URL). Vous trouverez l'ID du bundle de votre application dans l'onglet General (Général) de la configuration du projet (Identity > Bundle Identifier (Identité > Identifiant du bundle)).
Utiliser la console Firebase
Si vous souhaitez générer un seul Dynamic Link, soit à des fins de test, soit pour que votre équipe marketing puisse créer facilement un lien pouvant être utilisé dans un post sur les réseaux sociaux, par exemple, le plus simple est d'accéder à la console Firebase et d'en créer un manuellement en suivant le formulaire étape par étape.
Domaines personnalisés
Vous pouvez mieux contrôler l'image de marque de votre Dynamic Link en utilisant votre propre domaine au lieu d'un sous-domaine goo.gl ou page.link. Suivez ces instructions pour configurer un domaine personnalisé pour votre projet.
Utiliser l'API Firebase Dynamic Links
Créer et initialiser l'application
Avant de pouvoir créer un Dynamic Links, vous devez créer et initialiser un objet firebase::App.
Incluez le fichier d'en-tête pour firebase::App :
#include "firebase/app.h"
La partie suivante varie en fonction de votre plate-forme :
Android
Créez le firebase::App en transmettant l'environnement JNI et une référence jobject à l'activité Java en tant qu'arguments :
app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"), jni_env, activity);
iOS
Créez le sous-réseau firebase::App :
app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"));
Initialiser la bibliothèque Dynamic Links
Avant de créer un Dynamic Link, vous devez d'abord initialiser la bibliothèque Dynamic Links :
::firebase::dynamic_links::Initialize(app, null);
Créer un Dynamic Link long à partir de paramètres
Pour créer un lien dynamique, créez un objet DynamicLinkComponents, définissez l'un des membres facultatifs pour une configuration supplémentaire, puis transmettez-le à dynamic_links::GetShortLink ou dynamic_links::GetLongLink.
L'exemple minimal suivant crée un lien dynamique long vers https://www.example.com/ qui s'ouvre avec votre application Android com.example.android.package_name et votre application iOS com.example.ios :
firebase::dynamic_links::IOSParameters ios_parameters("com.example.ios"); firebase::dynamic_links::AndroidParameters android_parameters( "com.example.android.package_name"); firebase::dynamic_links::DynamicLinkComponents components( "https://www.example.com/", "example.page.link"); components.android_parameters = &android_parameters; components.ios_parameters = &ios_parameters; firebase::dynamic_links::GeneratedDynamicLink long_link = firebase::dynamic_links::GetLongLink(components);
Créer un Short Dynamic Link
Pour créer un lien dynamique court, transmettez un lien long précédemment généré à GetShortLink ou créez DynamicLinkComponents de la même manière que ci-dessus.
GetShortLink accepte éventuellement un paramètre de configuration DynamicLinkOptions supplémentaire avec PathLength, ce qui vous permet de contrôler la façon dont le lien doit être généré. La génération d'un lien court nécessite une requête réseau vers le backend Firebase. Par conséquent, GetShortLink est asynchrone et renvoie un Future<GeneratedLink>.
Exemple :
firebase::dynamic_links::DynamicLinkOptions short_link_options; short_link_options.path_length = firebase::dynamic_links::kPathLengthShort; firebase::Future<firebase::dynamic_links::GeneratedDynamicLink> result = firebase::dynamic_links::GetShortLink(components, short_link_options);
Si votre programme comporte une boucle de mise à jour qui s'exécute régulièrement (par exemple, 30 ou 60 fois par seconde), vous pouvez vérifier les résultats une fois par mise à jour :
if (result.status() == firebase::kFutureStatusComplete) { if (result.error() == firebase::dynamic_links::kErrorCodeSuccess) { firebase::dynamic_links::GeneratedDynamicLink link = *result.result(); printf("Create short link succeeded: %s\n", link.url.c_str()); } else { printf("Created short link failed with error '%s'\n", result.error_message()); } }