Catch up on highlights from Firebase at Google I/O 2023. Learn more

Empfangen Sie dynamische Links mit C++

Um die von Ihnen erstellten Firebase Dynamic Links zu erhalten, müssen Sie das SDK für dynamische Links in Ihre App einschließen und ein firebase::dynamic_links::Listener Objekt erstellen, das die virtuelle OnDynamicLinkReceived -Funktion 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 Folgendes tun:

  • Registrieren Sie Ihr C++-Projekt und konfigurieren Sie es für die Verwendung von Firebase.

    Wenn Ihr C++-Projekt Firebase bereits 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 Firebase Dynamic Links C++-Clientbibliothek verwendet benutzerdefinierte URL-Schemata unter iOS, um Links zu verarbeiten. Sie müssen Ihrer App benutzerdefinierte URL-Schemata 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 im Abschnitt ZIELE aus, wählen Sie dann die Registerkarte Info und erweitern Sie dann den Abschnitt URL-Typen .

  3. Klicken Sie auf die Schaltfläche + und fügen Sie dann 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 dann nach dem Schlüssel REVERSED_CLIENT_ID .

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

    3. Lassen Sie die anderen Felder leer.

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

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

    Sie finden die Bundle-ID Ihrer App auf der Registerkarte Allgemein der Projektkonfiguration ( Identity > Bundle Identifier ).

Empfangen eines dynamischen Links

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 hinzu:

#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 eine jobject Referenz an 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 nach einem empfangenen dynamischen Link zu suchen, implementieren und verwenden Sie die Klasse firebase::dynamic_links::Listener .

Fügen Sie die Header-Datei zum Empfang dynamischer Links hinzu:

#include "firebase/dynamic_links.h"

Initialisieren Sie die Bibliothek für dynamische Links:

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

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

Um dynamische Links zu empfangen, muss Ihre Listener-Klasse die virtuelle OnDynamicLinkReceived -Funktion 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());
  }
};