Recevoir des liens dynamiques avec C++

Pour recevoir les Firebase Dynamic Links que vous avez créés, vous devez inclure le Dynamic Links SDK dans votre application et créer un firebase::dynamic_links::Listener objet qui implémente la OnDynamicLinkReceived fonction virtuelle.

Le SDK C++ fonctionne à la fois pour Android et iOS, mais une configuration supplémentaire est requise pour chaque plate-forme.

Avant de commencer

Avant de pouvoir utiliser Firebase Dynamic Links, vous devez effectuer les opérations suivantes :

  • 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 Firebase C++ SDK à votre projet C++.

Notez que l'ajout de Firebase à votre projet C++ implique des tâches à la fois dans la Firebase console 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++).

Ajouter des schémas d'URL personnalisés (pour iOS uniquement)

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.

  1. Pour ouvrir la configuration de votre projet, double-cliquez sur le nom du projet dans l'arborescence de gauche.

  2. Sélectionnez votre application dans la section CIBLES, puis sélectionnez l'onglet Infos , puis développez la section Types d'URL.

  3. Cliquez sur le bouton +, puis ajoutez un schéma d'URL pour votre ID client inversé. Pour trouver cette valeur :

    1. Ouvrez le fichier de configuration GoogleService-Info.plist, puis recherchez la clé REVERSED_CLIENT_ID.

    2. Copiez la valeur de cette clé, puis collez-la dans la zone Schémas d'URL de la page de configuration.

    3. Laissez les autres champs vides.

  4. Cliquez sur le bouton +, puis ajoutez un deuxième schéma d'URL. Il s'agit du même que l'ID de 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 trouverez l'ID de bundle de votre application dans l'onglet Général de la configuration du projet (Identité > Identifiant du bundle).

Recevoir un Dynamic Link

Créer et initialiser une application

Avant de pouvoir vérifier si vous avez reçu des Dynamic Links, vous devez créer et initialiser un firebase::App objet.

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 firebase::App en transmettant l'environnement JNI et une jobject référence à l'activité Java en tant qu'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"));

Implémenter un écouteur pour vérifier les Dynamic Links

Pour vérifier si vous avez reçu un Dynamic Link, implémentez et utilisez la firebase::dynamic_links::Listener classe.

Incluez le fichier d'en-tête pour recevoir des Dynamic Links :

#include "firebase/dynamic_links.h"

Initialisez la bibliothèque Dynamic Links :

::firebase::dynamic_links::Initialize(app, null);

Créez un objet qui implémente firebase::dynamic_links::Listener, et fournissez-le à la bibliothèque Dynamic Links avec SetListener(), ou transmettez-le en tant que deuxième argument à Initialize.

Pour recevoir Dynamic Links, votre classe d'écouteur doit implémenter la OnDynamicLinkReceived fonction virtuelle. En remplaçant la méthode, vous pouvez recevoir un lien profond, si vous en avez reçu un.

class Listener : public firebase::dynamic_links::Listener {
 public:
  // Called on the client when a dynamic link arrives.
  void OnDynamicLinkReceived(
      const firebase::dynamic_links::DynamicLink* dynamic_link) override {
    printf("Received link: %s", dynamic_link->url.c_str());
  }
};