Erstellen Sie dynamische Links mit C++

Mit der Firebase Dynamic Links API können Sie kurze oder lange dynamische Links erstellen. Die API benötigt mehrere optionale Parameterstrukturen zum Erstellen von Links. Kurzlinks können auch aus einem zuvor generierten Langlink erstellt werden. Firebase Dynamic Links generiert eine URL wie die folgende:

https://example.page.link/WXYZ

Das C++ SDK funktioniert sowohl für Android als auch für iOS, wobei für jede Plattform eine zusätzliche Einrichtung erforderlich ist.d

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

Android

  1. Öffnen Sie in der Firebase-Konsole den Abschnitt „Dynamische Links“ .
  2. Wenn Sie die Nutzungsbedingungen noch nicht akzeptiert und ein URI-Präfix für Ihre dynamischen Links festgelegt haben, tun Sie dies, wenn Sie dazu aufgefordert werden.

    Wenn Sie bereits über ein Dynamic Links-URI-Präfix verfügen, notieren Sie sich dieses. Sie müssen ein URI-Präfix für dynamische Links angeben, wenn Sie dynamische Links programmgesteuert erstellen.

  3. Empfohlen : Geben Sie die URL-Muster an, die in Ihren Deep-Links und Fallback-Links zulässig sind. Auf diese Weise verhindern Sie, dass Unbefugte dynamische Links erstellen, die von Ihrer Domain auf Websites weiterleiten, die nicht von Ihnen kontrolliert werden. Siehe Whitelist-URL-Muster .

iOS

  1. Öffnen Sie in der Firebase-Konsole den Abschnitt „Dynamische Links“ .
  2. Wenn Sie die Nutzungsbedingungen noch nicht akzeptiert und ein URI-Präfix für Ihre dynamischen Links festgelegt haben, tun Sie dies, wenn Sie dazu aufgefordert werden.

    Wenn Sie bereits über ein Dynamic Links-URI-Präfix verfügen, notieren Sie sich dieses. Sie müssen eine Dynamic Links-Domäne angeben, wenn Sie Dynamic Links programmgesteuert erstellen.

  3. 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. Wählen Sie Ihre App im Abschnitt „ZIELE“ aus, wählen Sie dann die Registerkarte „Info“ aus und erweitern Sie den Abschnitt „URL-Typen“ .
    2. Klicken Sie auf die Schaltfläche „+“ und fügen Sie ein URL-Schema für Ihre umgekehrte Client-ID hinzu. Um diesen Wert zu finden, öffnen Sie die Konfigurationsdatei GoogleService-Info.plist und suchen Sie nach dem Schlüssel 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.
    3. Klicken Sie auf die Schaltfläche „ +“ und fügen Sie 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 ).

Verwenden Sie die Firebase-Konsole

Wenn Sie einen einzelnen dynamischen Link generieren möchten, entweder zu Testzwecken oder damit Ihr Marketingteam ganz einfach einen Link erstellen kann, der beispielsweise in einem Social-Media-Beitrag verwendet werden kann, wäre es am einfachsten, die Firebase-Konsole aufzurufen und einen zu erstellen manuell dem Schritt-für-Schritt-Formular folgen.

Benutzerdefinierte Domänen

Sie können das Branding Ihres Dynamic Links besser steuern, indem Sie Ihre eigene Domain anstelle einer goo.gl oder page.link Subdomain verwenden. Befolgen Sie diese Anweisungen , um eine benutzerdefinierte Domäne für Ihr Projekt einzurichten.

Verwendung der Firebase Dynamic Links API

App erstellen und initialisieren

Bevor Sie dynamische Links erstellen 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"));

Initialisieren Sie die Dynamic Links-Bibliothek

Bevor Sie einen Dynamic Link erstellen, müssen Sie zunächst die Dynamic Links-Bibliothek initialisieren :

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

Erstellen eines langen dynamischen Links aus Parametern

Um einen dynamischen Link zu erstellen, erstellen Sie ein DynamicLinkComponents-Objekt, legen Sie eines der optionalen Mitglieder für die zusätzliche Konfiguration fest und übergeben Sie es an dynamic_links::GetShortLink oder dynamic_links::GetLongLink .

Das folgende Minimalbeispiel erstellt einen langen dynamischen Link zu https://www.example.com/, der mit Ihrer Android-App com.example.android.package_name und Ihrer iOS-App com.example.ios geöffnet wird:

firebase::dynamic_links::IOSParameters ios_parameters("com.example.ios");

firebase::dynamic_links::AndroidParameters android_parameters(
    "com.example.android.package_name");

firebase::dynamic_links::DynamicLinkComponents components(
    "https://www.example.com/", "example.page.link");
components.android_parameters = &android_parameters;
components.ios_parameters = &ios_parameters;

firebase::dynamic_links::GeneratedDynamicLink long_link =
    firebase::dynamic_links::GetLongLink(components);

Erstellen eines kurzen dynamischen Links

Um einen kurzen dynamischen Link zu erstellen, übergeben Sie einen zuvor generierten langen Link an GetShortLink oder erstellen Sie DynamicLinkComponents auf die gleiche Weise wie oben.

GetShortLink akzeptiert optional einen zusätzlichen DynamicLinkOptions Konfigurationsparameter mit PathLength ; Dadurch können Sie steuern, wie der Link generiert werden soll. Das Generieren eines Kurzlinks erfordert eine Netzwerkanforderung an das Firebase-Backend, daher ist GetShortLink asynchron und gibt einen Future<GeneratedLink> zurück.

Zum Beispiel:

firebase::dynamic_links::DynamicLinkOptions short_link_options;
short_link_options.path_length = firebase::dynamic_links::kPathLengthShort;

firebase::Future<firebase::dynamic_links::GeneratedDynamicLink> result =
    firebase::dynamic_links::GetShortLink(components, short_link_options);

Wenn Ihr Programm über eine Aktualisierungsschleife verfügt, die regelmäßig ausgeführt wird (z. B. 30 oder 60 Mal pro Sekunde), können Sie die Ergebnisse einmal pro Aktualisierung überprüfen:

if (result.status() == firebase::kFutureStatusComplete) {
  if (result.error() == firebase::dynamic_links::kErrorCodeSuccess) {
    firebase::dynamic_links::GeneratedDynamicLink link = *result.result();
    printf("Create short link succeeded: %s\n", link.url.c_str());
  } else {
    printf("Created short link failed with error '%s'\n",
           result.error_message());
  }
}