Empfangen Sie dynamische Links mit C++

Um die von Ihnen erstellten Firebase Dynamic Links zu erhalten, 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 einige zusätzliche Setups 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 offenen C++-Projekt erfordert (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 auf den Projektnamen in der linken Baumansicht.

  2. Wählen Sie Ihre App im Abschnitt „ZIELE“ aus, wählen Sie dann die Registerkarte „Info“ aus 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 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 ( Identität > Bundle-ID ).

Empfang 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 ein:

#include "firebase/app.h"

Der nächste Teil variiert je nach Plattform:

Android

Erstellen Sie die firebase::App und übergeben Sie dabei 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 die firebase::App :

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

Implementieren Sie den 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 ein:

#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 bereit oder übergeben Sie es als zweites Argument an Initialize .

Um dynamische Links zu empfangen, muss Ihre Listener-Klasse die virtuelle Funktion OnDynamicLinkReceived implementieren. Durch Überschreiben der Methode können Sie einen Deep Link erhalten, sofern 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());
  }
};