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 associations. Vous pouvez également créer des liens courts à partir d'un lien long précédemment généré. Firebase Dynamic Links génère une URL semblable à celle-ci :
https://example.page.link/WXYZ
Le SDK C++ fonctionne à la fois sur 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 C++ Firebase à votre projet C++.
Notez que l'ajout de Firebase à votre projet C++ implique des tâches dans la console Firebase et dans votre projet C++ ouvert (par exemple, vous devez télécharger les fichiers de configuration Firebase à partir de la console, puis les déplacer 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 avez déjà un préfixe d'URI Dynamic Links, notez-le. Vous devez fournir un préfixe d'URI Dynamic Links lorsque vous créez Dynamic Links de manière automatisée.
- Recommandé: Spécifiez les formats d'URL autorisés dans vos liens profonds et liens de remplacement. Ainsi, vous empêchez 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. Consultez la section Ajouter des formats d'URL à la liste blanche.
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 avez déjà 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 pouvoir recevoir Dynamic Links :
- Pour ouvrir la configuration de votre projet, double-cliquez sur son nom dans l'arborescence de gauche. Sélectionnez votre application dans la section TARGETS, puis sélectionnez l'onglet Infos et développez la section 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é, puis collez-la dans le champ URL Schemes (Modèles 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 de bundle que celui de votre application. Par exemple, si l'ID de votre bundle est
com.example.ios
, saisissez cette valeur dans la zone Schémas d'URL. Vous trouverez l'ID de bundle de votre application dans l'onglet General (Général) de la configuration du projet (Identity > Bundle Identifier [Identité > Identifiant de bundle]).
Utiliser la console Firebase
Si vous souhaitez générer un seul Dynamic Link, à des fins de test ou pour que votre équipe marketing crée facilement un lien pouvant être utilisé dans un post sur les réseaux sociaux, le moyen le plus simple est d'accéder à la console Firebase et d'en créer un manuellement en suivant le formulaire par étapes.
Domaines personnalisés
Vous pouvez mieux contrôler le branding 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"
L'étape suivante varie selon votre plate-forme:
Android
Créez 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 long lien dynamique 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 généré précédemment à 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
. Cela vous permet de contrôler la manière dont le lien doit être généré. La génération d'un lien court nécessite une requête réseau au backend Firebase. GetShortLink
est donc 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()); } }