Check out what’s new from Firebase at Google I/O 2022. Learn more

Recevoir des liens dynamiques avec C++

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

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

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 à partir de la console, puis les déplacez dans votre projet C++).

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

La bibliothèque cliente 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.

  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. Celui-ci est le 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 pouvez trouver l'identifiant du bundle de votre application dans l'onglet Général de la configuration du projet ( Identité > Identifiant du bundle ).

Recevoir un lien dynamique

Créer et initialiser l'application

Avant de pouvoir vérifier les liens dynamiques reçus, 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 passant 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 la firebase::App :

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

Implémenter Listener pour vérifier les liens dynamiques

Pour rechercher un lien dynamique reçu, implémentez et utilisez la firebase::dynamic_links::Listener .

Inclure le fichier d'en-tête pour recevoir les liens dynamiques :

#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 comme deuxième argument à Initialize .

Pour recevoir des liens dynamiques, votre classe Listener doit implémenter la fonction virtuelle OnDynamicLinkReceived . En remplaçant la méthode, vous pouvez recevoir un lien profond, le cas échéant.

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());
  }
};