Créer des liens dynamiques avec C++

Vous pouvez créer des liens dynamiques courts ou longs avec l'API Firebase Dynamic Links. L'API utilise plusieurs structures de paramètres facultatives pour créer des liens. Des 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 à la suivante :

https://example.page.link/WXYZ

Le SDK C++ fonctionne à la fois pour Android et iOS, avec une configuration supplémentaire requise pour chaque plateforme.d

Avant que tu commences

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 les fichiers de configuration Firebase depuis la console, puis vous les déplacez dans votre projet C++).

Android

  1. Dans la console Firebase, ouvrez la section Liens dynamiques .
  2. Si vous n'avez pas encore accepté les conditions d'utilisation et défini un préfixe URI pour vos liens dynamiques, faites-le lorsque vous y êtes invité.

    Si vous disposez déjà d’un préfixe URI Dynamic Links, prenez-en note. Vous devez fournir un préfixe URI Dynamic Links lorsque vous créez des liens dynamiques par programme.

  3. Recommandé : Spécifiez les modèles d'URL autorisés dans vos liens profonds et vos liens de secours. Ce faisant, vous empêchez des tiers non autorisés de créer des liens dynamiques qui redirigent depuis votre domaine vers des sites que vous ne contrôlez pas. Voir Modèles d'URL de liste blanche .

IOS

  1. Dans la console Firebase, ouvrez la section Liens dynamiques .
  2. Si vous n'avez pas encore accepté les conditions d'utilisation et défini un préfixe URI pour vos liens dynamiques, faites-le lorsque vous y êtes invité.

    Si vous disposez déjà d’un préfixe URI Dynamic Links, prenez-en note. Vous devez fournir un domaine Dynamic Links lorsque vous créez des Dynamic Links par programme.

  3. La bibliothèque client Firebase Dynamic Links C++ 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 prendre en charge la réception de liens dynamiques :
    1. 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 CIBLES , puis sélectionnez l'onglet Informations et développez la section Types d'URL .
    2. Cliquez sur le bouton + et ajoutez un schéma d'URL pour votre ID client inversé. Pour trouver cette valeur, ouvrez le fichier de configuration GoogleService-Info.plist et recherchez la clé REVERSED_CLIENT_ID . Copiez la valeur de cette clé et collez-la dans la zone Schémas d'URL sur la page de configuration. Laissez les autres champs vides.
    3. Cliquez sur le bouton + et ajoutez un deuxième schéma d'URL. Celui-ci est le même que l’ID du bundle de votre application. Par exemple, si votre ID de bundle est com.example.ios , saisissez cette valeur dans la zone Schémas d'URL . Vous pouvez trouver l'ID de bundle de votre application dans l'onglet Général de la configuration du projet ( Identity > Bundle Identifier ).

Utiliser la console Firebase

Si vous souhaitez générer un seul lien dynamique, soit à des fins de test, soit pour que votre équipe marketing puisse créer facilement un lien pouvant être utilisé dans quelque chose comme une publication sur les réseaux sociaux, le moyen le plus simple serait de visiter la console Firebase et d'en créer un. en suivant manuellement le formulaire étape par étape.

Domaines personnalisés

Vous pouvez avoir un meilleur contrôle sur la 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.

Utilisation de l'API Firebase Dynamic Links

Créer et initialiser l'application

Avant de pouvoir créer des liens dynamiques, vous devrez 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 plateforme :

Android

Créez le firebase::App , en passant l'environnement JNI et une référence jobject à l'activité Java comme arguments :

app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"), jni_env, activity);

IOS

Créez le 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éation d'un long lien dynamique à partir de paramètres

Pour créer un Dynamic Link, créez un objet DynamicLinkComponents, en définissant l'un des membres facultatifs pour une configuration supplémentaire et en le transmettant à 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 court lien dynamique

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 prend é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, donc GetShortLink est asynchrone et renvoie un Future<GeneratedLink> .

Par 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 dispose d'une boucle de mise à jour qui s'exécute régulièrement (disons 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());
  }
}