Ricevi link dinamici con C++

Per ricevere l'Firebase Dynamic Links che hai creato, devi includere l'SDK Dynamic Links nella tua app e creare un oggetto firebase::dynamic_links::Listener che implementi la funzione virtuale OnDynamicLinkReceived.

L'SDK C++ funziona sia per Android che per iOS, con una configurazione aggiuntiva richiesta per ogni piattaforma.

Prima di iniziare

Prima di poter utilizzare Firebase Dynamic Links, devi:

  • Registra il tuo progetto C++ e configuralo in modo che utilizzi Firebase.

    Se il tuo progetto C++ utilizza già Firebase, è già registrato e configurato per Firebase.

  • Aggiungi l'SDK Firebase C++ al tuo progetto C++.

Tieni presente che l'aggiunta di Firebase al tuo progetto C++ comporta attività sia nella Firebase console sia nel progetto C++ aperto (ad esempio, scarichi i file di configurazione Firebase dalla console, poi li sposti nel progetto C++).

Aggiungere schemi URL personalizzati (solo per iOS)

La libreria client C++ Firebase Dynamic Links utilizza schemi URL personalizzati su iOS per elaborare i link. Devi aggiungere schemi URL personalizzati alla tua app per supportare la ricezione di Dynamic Links.

  1. Per aprire la configurazione del progetto, fai doppio clic sul nome del progetto nella visualizzazione ad albero a sinistra.

  2. Seleziona la tua app dalla sezione TARGET, poi seleziona la scheda Informazioni e espandi la sezione Tipi di URL.

  3. Fai clic sul pulsante +, quindi aggiungi uno schema URL per l'ID client inverso. Per trovare questo valore:

    1. Apri il file di configurazione GoogleService-Info.plist, quindi cerca la chiave REVERSED_CLIENT_ID.

    2. Copia il valore di questa chiave, poi incollalo nella casella Schemi URL nella pagina di configurazione.

    3. Lascia vuoti gli altri campi.

  4. Fai clic sul pulsante +, quindi aggiungi un secondo schema URL. Questo è uguale all'ID bundle della tua app.

    Ad esempio, se il tuo ID bundle è com.example.ios, inserisci questo valore nella casella Schemi URL.

    Puoi trovare l'ID bundle della tua app nella scheda Generale della configurazione del progetto (Identità > Identificatore bundle).

Ricezione di un Dynamic Link

Crea e inizializza l'app

Prima di poter controllare i Dynamic Links ricevuti, devi creare e inizializzare un oggetto firebase::App.

Includi il file di intestazione per firebase::App:

#include "firebase/app.h"

La parte successiva varia a seconda della piattaforma:

Android

Crea firebase::App, passando l'ambiente JNI e un riferimento jobject all'attività Java come argomenti:

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

iOS

Crea firebase::App:

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

Implementa il listener per verificare la presenza di Dynamic Links

Per verificare la presenza di un Dynamic Link ricevuto, implementa e utilizza la classe firebase::dynamic_links::Listener.

Includi il file di intestazione per la ricezione di Dynamic Links:

#include "firebase/dynamic_links.h"

Inizializza la libreria Dynamic Links:

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

Crea un oggetto che implementi firebase::dynamic_links::Listener, e forniscilo alla libreria Dynamic Links con SetListener(), oppure passalo come secondo argomento a Initialize.

Per ricevere Dynamic Links, la classe Listener deve implementare la funzione virtuale OnDynamicLinkReceived. Se è stato ricevuto un link diretto, puoi riceverlo eseguendo l'override del metodo.

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