Um die von Ihnen erstellten dynamischen Firebase-Links zu erhalten, müssen Sie das Dynamic Links SDK in Ihre App aufnehmen und ein firebase::dynamic_links::Listener
Objekt erstellen, das die virtuelle Funktion OnDynamicLinkReceived
implementiert.
Das C ++ SDK funktioniert sowohl für Android als auch für iOS, wobei für jede Plattform einige zusätzliche Einstellungen erforderlich sind.
Bevor Sie beginnen
Bevor Sie Firebase Dynamic Links verwenden können , müssen Sie:
Registrieren Sie Ihr C ++ - Projekt und konfigurieren Sie es für die Verwendung von Firebase.
Wenn Ihr C ++ - Projekt bereits Firebase verwendet, ist es bereits für Firebase registriert und konfiguriert.
Fügen Sie das Firebase C ++ SDK zu Ihrem C ++ - Projekt hinzu.
Beachten Sie, dass das Hinzufügen von Firebase zu Ihrem C ++ - Projekt Aufgaben sowohl in der Firebase-Konsole als auch in Ihrem geöffneten C ++ - Projekt umfasst (Sie laden beispielsweise Firebase-Konfigurationsdateien von der Konsole herunter und verschieben sie dann in Ihr C ++ - Projekt).
Benutzerdefinierte URL-Schemata hinzufügen (nur für iOS)
Die C ++ - Clientbibliothek von Firebase Dynamic Links verwendet unter iOS benutzerdefinierte URL-Schemata, um Links zu verarbeiten. Sie müssen Ihrer App benutzerdefinierte URL-Schemata hinzufügen, um den Empfang dynamischer Links zu unterstützen.
Doppelklicken Sie zum Öffnen Ihrer Projektkonfiguration in der linken Baumansicht auf den Projektnamen.
Wählen Sie Ihre App im Abschnitt ZIELE aus , wählen Sie die Registerkarte Info und erweitern Sie den Abschnitt URL-Typen .
Klicken Sie auf die Schaltfläche + und fügen Sie ein URL-Schema für Ihre umgekehrte Client-ID hinzu. So finden Sie diesen Wert:
Öffnen Sie die Konfigurationsdatei
und suchen Sie nach dem SchlüsselGoogleService-Info.plist REVERSED_CLIENT_ID
.Kopieren Sie den Wert dieses Schlüssels und fügen Sie ihn in das Feld URL-Schemata auf der Konfigurationsseite ein.
Lassen Sie die anderen Felder leer.
Klicken Sie auf die Schaltfläche + und fügen Sie ein zweites URL-Schema hinzu. Diese entspricht der Bundle-ID Ihrer App.
Wenn Ihre Bundle-ID beispielsweise
com.example.ios
, geben Sie diesen Wert in das Feld URL-Schemata ein .Die Bundle-ID Ihrer App finden Sie auf der Registerkarte Allgemein der Projektkonfiguration ( Identität> Bundle- ID).
Empfangen einer dynamischen Verbindung
App erstellen und initialisieren
Bevor Sie nach empfangenen dynamischen Links suchen können, müssen Sie ein firebase::App
Objekt erstellen und initialisieren.
Fügen Sie die Header-Datei für firebase::App
:
#include "firebase/app.h"
Der nächste Teil hängt von Ihrer Plattform ab:
Android
Erstellen Sie die firebase::App
, indem Sie die JNI-Umgebung und einen jobject
auf die Java-Aktivität als Argumente übergeben:
app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"), jni_env, activity);
iOS
Erstellen Sie die firebase::App
:
app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"));
Implementieren Sie den Listener, um nach dynamischen Links zu suchen
Implementieren und verwenden Sie die Klasse firebase::dynamic_links::Listener
um nach einem empfangenen dynamischen Link zu firebase::dynamic_links::Listener
.
Fügen Sie die Header-Datei für den Empfang von Dynamic Links hinzu:
#include "firebase/dynamic_links.h"
Initialisieren Sie die Dynamic Links-Bibliothek:
::firebase::dynamic_links::Initialize(app, null);
Erstellen Sie ein Objekt, das firebase::dynamic_links::Listener
implementiert, und stellen Sie es mit SetListener()
der Dynamic Links-Bibliothek zur SetListener()
, oder übergeben Sie es als zweites Argument an Initialize .
Um dynamische Links zu erhalten, muss Ihre Listener-Klasse die virtuelle Funktion OnDynamicLinkReceived
implementieren. Durch Überschreiben der Methode können Sie einen Deep Link erhalten, falls einer empfangen wurde.
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()); } };