Dynamische Links mit C++ erhalten

Wenn Sie die von Ihnen erstellte Firebase Dynamic Links erhalten möchten, müssen Sie das Dynamic Links SDK in Ihre App einbinden 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 eine zusätzliche Einrichtung erforderlich ist.

Hinweis

Bevor Sie Firebase Dynamic Links verwenden können, müssen Sie Folgendes tun:

  • 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.

Wenn Sie Firebase zu Ihrem C++-Projekt hinzufügen, müssen Sie sowohl in der Firebase Console als auch in Ihrem offenen C++-Projekt Aufgaben ausführen. Sie laden beispielsweise Firebase-Konfigurationsdateien aus der Console herunter und verschieben sie dann in Ihr C++-Projekt.

Benutzerdefinierte URL-Schemas hinzufügen (nur iOS)

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

  1. Doppelklicken Sie in der linken Baumansicht auf den Projektnamen, um die Projektkonfiguration zu öffnen.

  2. Wählen Sie Ihre App im Bereich TARGETS aus, wählen Sie dann den Tab Info aus und maximieren Sie den Bereich URL Types.

  3. Klicken Sie auf den Button + und fügen Sie ein URL-Schema für Ihre umgekehrte Client-ID hinzu. So finden Sie diesen Wert:

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

    2. Kopieren Sie den Wert dieses Schlüssels und fügen Sie ihn auf der Konfigurationsseite in das Feld URL-Schemas ein.

    3. Lassen Sie die anderen Felder leer.

  4. Klicken Sie auf den Button + und fügen Sie ein zweites URL-Schema hinzu. Diese ist mit der Paket-ID Ihrer App identisch.

    Wenn Ihre Paket-ID beispielsweise com.example.ios lautet, geben Sie diesen Wert in das Feld URL-Schemas ein.

    Sie finden die Paket-ID Ihrer App in der Projektkonfiguration auf dem Tab Allgemein (Identität > Paket-Identifikator).

Dynamic Link erhalten

App erstellen und initialisieren

Bevor Sie nach empfangenen Dynamic Links suchen können, müssen Sie ein firebase::App-Objekt erstellen und initialisieren.

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

#include "firebase/app.h"

Der nächste Teil variiert je nach Plattform:

Android

Erstellen Sie die firebase::App und übergeben Sie die JNI-Umgebung und einen jobject-Verweis auf die Java-Aktivität als Argumente:

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

iOS

Erstellen Sie firebase::App:

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

Listener implementieren, um nach Dynamic Links zu suchen

Wenn Sie prüfen möchten, ob ein Dynamic Link empfangen wurde, implementieren und verwenden Sie die Klasse firebase::dynamic_links::Listener.

Fügen Sie die Header-Datei für den Empfang von Dynamic Links ein:

#include "firebase/dynamic_links.h"

Initialisieren Sie die Dynamic Links-Bibliothek:

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

Erstelle ein Objekt, das firebase::dynamic_links::Listener implementiert, und stelle es der Dynamic Links-Bibliothek mit SetListener() zur Verfügung oder übergib es als zweites Argument an Initialize.

Damit Sie Dynamic Links erhalten, muss Ihre Listener-Klasse die virtuelle Funktion OnDynamicLinkReceived implementieren. Wenn Sie die Methode überschreiben, können Sie einen Deeplink 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());
  }
};