Erhalten Sie dynamische Links mit C++

Um die Firebase dynamischen Links zu erhalten , dass Ihr erstellt , müssen Sie die dynamischen Links SDK in Ihrer App enthalten und erstellen firebase::dynamic_links::Listener - Objekt , das die Geräte OnDynamicLinkReceived virtuelle Funktion.

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 können Firebase dynamische Links , 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 die Firebase C ++ SDK zu Ihrem C ++ Projekt.

Beachten Sie, dass das Hinzufügen Firebase zu Ihrem C ++ Projekt umfasst Aufgaben sowohl in der Firebase - Konsole und in der offenen C ++ Projekt (zB Sie Firebase Konfigurationsdateien von der Konsole herunterladen, dann bewegen Sie sie in Ihr C ++ Projekt).

Benutzerdefinierte URL-Schemas hinzufügen (nur für iOS)

Die C++-Clientbibliothek von Firebase Dynamic Links verwendet benutzerdefinierte URL-Schemas unter iOS, um Links zu verarbeiten. Sie müssen Ihrer App benutzerdefinierte URL-Schemas hinzufügen, um den Empfang dynamischer Links zu unterstützen.

  1. Um Ihre Projektkonfiguration zu öffnen, doppelklicken Sie in der linken Baumansicht auf den Projektnamen.

  2. Wählen Sie Ihre App aus dem Abschnitt VORGABEN, wählen Sie dann die Registerkarte Info, erweitern Sie dann die URL - Typen Abschnitt.

  3. Klicken Sie auf die Schaltfläche +, dann fügen Sie ein URL - Schema für die Reversed - Client - ID. So finden Sie diesen Wert:

    1. Öffnen Sie die GoogleService-Info.plist Konfigurationsdatei, dann suchen Sie nach dem REVERSED_CLIENT_ID Schlüssel.

    2. Kopieren Sie den Wert dieses Schlüssels, dann fügen Sie ihn in das URL - Schemata auf der Konfigurationsseite Feld.

    3. Lassen Sie die anderen Felder leer.

  4. Klicken Sie auf die Schaltfläche +, dann ein zweites URL - Schema hinzuzufügen. Diese ist mit der Bundle-ID Ihrer App identisch.

    Zum Beispiel, wenn Ihr Bündel ID ist com.example.ios , geben Sie diesen Wert in das URL - Schemes Feld.

    Sie können Ihre App-Bundle - ID in dem Registerkarte Allgemein der Projektkonfiguration (Identität> Bundle Identifier) finden.

Empfangen eines dynamischen Links

App erstellen und initialisieren

Bevor Sie sich für empfangene dynamische Links überprüfen können, müssen Sie erstellen und initialisieren firebase::App - Objekt.

Fügen Sie die Header - Datei für firebase::App :

#include "firebase/app.h"

Der nächste Teil variiert je nach Plattform:

Android

Erstellen Sie die firebase::App , die JNI - Umgebung vorbei und einen jobject Bezug auf die Java - Aktivität als Argumente:

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 Listener, um nach dynamischen Links zu suchen

Um zu überprüfen , für eine empfangene Dynamic Link, implementieren und verwenden , um die firebase::dynamic_links::Listener - Klasse.

Fügen Sie die Header - Datei für die Aufnahme Dynamische Links:

#include "firebase/dynamic_links.h"

Initialisieren Sie die dynamischen Link Bibliothek:

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

Erstellen Sie ein Objekt , dass Geräte firebase::dynamic_links::Listener , und liefern sie an die dynamische Links Bibliothek mit SetListener() , oder es als zweites Argument übergeben initialisieren .

So empfangen dynamische Links, Ihre Zuhörer Klasse muss die Umsetzung OnDynamicLinkReceived virtuelle Funktion. 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());
  }
};