Ir para o console

Receber Dynamic Links com C++

Para receber os Firebase Dynamic Links que você criou, é preciso incluir o SDK Dynamic Links no seu app e criar um objeto firebase::invites::Listener que implemente a função virtual OnInviteReceived.

O C++ SDK funciona tanto para Android como para iOS, com instalação adicional obrigatória para cada plataforma.

Antes de começar

Android

  1. Caso você ainda não tenha conectado o app ao seu project do Firebase, faça isso no Firebase console.
  2. Adicione o Firebase ao project Android.
  3. Adicione a dependência do Firebase Invites ao seu arquivo build.gradle no nível do app:
    dependencies {
         compile 'com.google.firebase:firebase-invites:10.0.1'
    }
  4. Vincule a biblioteca estática libapp.a e libinvites.a, a partir do C++ SDK.

iOS

  1. Caso você ainda não tenha conectado o app ao seu project do Firebase, faça isso no Firebase console.
  2. Adicione o Firebase ao seu project iOS.
  3. A biblioteca de clientes do Firebase Invites C++ usa os esquemas de URL personalizado no iOS para processar links. Você deve adicionar esquemas de URL personalizados ao seu app para dar suporte ao recebimento de Dynamic Links:
    1. Para abrir a configuração do seu project, clique duas vezes no nome do project na visualização em árvore à esquerda. Selecione seu app na seção DESTINOS. Em seguida, selecione a guia Informações e expanda a seção Tipos de URL.
    2. Clique no botão + e adicione um esquema de URL para o ID do cliente reverso. Para encontrar esse valor, abra o arquivo de configuração GoogleService-Info.plist e procure a chave REVERSED_CLIENT_ID. Copie o valor da chave e cole-o na caixa Esquemas de URL na página de configuração. Deixe os outros campos em branco.
    3. Clique no botão + e adicione um segundo esquema de URL. Ele é igual ao código de pacote do seu app. Por exemplo, se o seu código de pacote for com.example.app, digite o valor em questão na caixa Esquemas de URL. Você pode encontrar o código de pacote do seu app na guia Geral das configurações do seu project (Identidade > Identificador do pacote).
  4. Inclua este pod no seu Podfile:
    pod 'Firebase/Invites'
  5. Execute pod install
  6. Adicione firebase.framework e firebase_invites.framework, a partir do C++ SDK, ao seu project do Xcode.

Receber um Dynamic Link

Criar e inicializar o app

Antes de poder verificar Dynamic Links recebidos, você precisará criar e inicializar um objeto firebase::App.

Inclua o arquivo de cabeçalho para firebase::App:

#include "firebase/app.h"

A próxima etapa pode variar, dependendo da plataforma:

Android

Crie o firebase::App, transmitindo o ambiente JNI e uma referência de jobject à atividade Java, conforme os argumentos:

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

iOS

Crie o firebase::App:

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

Implementar o Listener para verificar Dynamic Links

A biblioteca do Firebase Invites C++ também é usada para receber Dynamic Links. Para verificar se um Dynamic Link foi recebido, implemente e utilize a classe firebase::invites::Listener.

Inclua o arquivo de cabeçalho para receber convites:

#include "firebase/invites.h"

Inicialize a biblioteca de convites:

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

Crie um objeto que implementa firebase::invites::Listener e forneça-o à biblioteca de convites com SetListener().

Para receber convites, sua classe de Listeners precisa implementar a função virtual OnInviteReceived. Ao modificar o método, você pode receber um link direto, se tiver recebido um.

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