Ir a la consola

Cómo recibir vínculos de Dynamic Links con C++

Para recibir los vínculos dinámicos de Firebase Dynamic Links que creaste, debes incluir el SDK de Dynamic Links en tu app y crear un objeto firebase::invites::Listener que implemente la función virtual OnInviteReceived.

El SDK de C++ funciona con Android y con iOS, y en cada plataforma se debe hacer alguna configuración adicional.

Antes de comenzar

Desde Android

  1. Si aún no conectaste tu app al proyecto de Firebase, puedes hacerlo desde Firebase console.
  2. Agrega Firebase a tu proyecto Android.
  3. Agrega la dependencia para Firebase Invites a tu archivo build.gradle de nivel de app:
    dependencies {
         compile 'com.google.firebase:firebase-invites:10.0.1'
    }
  4. Vincula libapp.a y la biblioteca estática libinvites.a desde el SDK de C++.

Desde iOS

  1. Si aún no conectaste tu app al proyecto de Firebase, puedes hacerlo desde Firebase console.
  2. Agrega Firebase a tu proyecto de iOS.
  3. 1. La biblioteca cliente de Firebase Invites C++ usa esquemas de URL personalizados en iOS para procesar vínculos. Debes agregar esquemas de URL personalizados a tu app para admitir la recepción de vínculos de Dynamic Links:
    1. Para abrir la configuración de tu proyecto, haz doble clic en el nombre del proyecto en la vista de árbol de la izquierda. Selecciona tu app en la sección TARGETS, haz clic en la pestaña Info y expande la sección URL Types.
    2. Haz clic en el botón + y agrega un esquema de URL para tu ID de cliente invertido. Para obtener este valor, abre el archivo de configuración GoogleService-Info.plist y busca la clave REVERSED_CLIENT_ID. Copia el valor de esa clave y pégalo en el recuadro URL Schemes en la página de configuración. Deja los demás campos en blanco.
    3. Haz clic en el botón + y agrega un segundo esquema de URL. Este es igual que el ID de paquete de tu app. Por ejemplo, si tu ID de paquete es com.example.app, ingresa ese valor en el recuadro URL Schemes. Puedes encontrar el ID de paquete de tu app en la pestaña General de la configuración del proyecto (Identity > Bundle Identifier).
  4. Incluye el siguiente Pod en tu Podfile:
    pod 'Firebase/Invites'
  5. Ejecuta pod install.
  6. Agrega firebase.framework y firebase_invites.framework desde el SDK de C++ a tu proyecto de Xcode.

Cómo recibir un vínculo Dynamic Link

Crea e inicializa una app

Antes de que puedas verificar los vínculos de Dynamic Links recibidos, deberás crear e inicializar un objeto firebase::App.

Incluye el archivo de encabezado para firebase::App:

#include "firebase/app.h"

La siguiente parte varía según tu plataforma:

Desde Android

Para crear firebase::App, pasa el entorno de JNI y una referencia jobject a la actividad de Java como argumentos:

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

Desde iOS

Crea firebase::App:

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

Cómo implementar un receptor para verificar vínculos de Dynamic Links

La biblioteca de Firebase Invites C++ también se usa para recibir Dynamic Links. Para verificar los vínculos de Dynamic Link recibidos, implementa y usa la clase firebase::invites::Listener.

Incluye el archivo de encabezado para recibir Invites:

#include "firebase/invites.h"

Inicializa la biblioteca de Invites:

::firebase::invites::Initialize(app);

Crea un objeto que implemente firebase::invites::Listener y envíalo a la biblioteca de Invites con SetListener().

Para recibir invitaciones, tu clase de Receptor debe implementar la función virtual OnInviteReceived. Puedes anular el método para recibir un vínculo directo, si se recibió uno.

void OnInviteReceived(const char* invitation_id, const char* deep_link,
                      bool is_strong_match) override {
  if (deep_link != nullptr) {
    // The app received a Dynamic Link. This may have come from an invitation
    // (if invite.invitation_id is set), or it might have been sent using
    // Firebase Dynamic Links.
    // In any event, the app can now act on this link as you see fit.
  }
  if (invitation_id != nullptr) {
    // We received an invitation ID. See the Firebase Invites documentation
    // for more information.
  }
}