Ir para o console

Criar links dinâmicos com o C++

Você pode criar links dinâmicos curtos ou longos com a API Firebase Dynamic Links. Ela usa várias estruturas de parâmetros opcionais para criar links. Links curtos também podem ser criados por meio de um link longo gerado anteriormente. O Firebase Dynamic Links gera um URL como o seguinte:

https://example.page.link/WXYZ

O SDK do C++ funciona no Android e iOS, mas algumas configurações adicionais são necessárias para cada plataforma.

Antes de começar

Antes de poder usar o Firebase Dynamic Links, você precisa:

  • Registrar seu projeto em C++ e configurá-lo para usar o Firebase

    Se o projeto em C++ já usa o Firebase, então ele já está registrado e configurado para o Firebase.

  • No seu arquivo de nível de projeto build.gradle, inclua o repositório Maven do Google, tanto nas seções buildscript e allprojects.

  • Adicionar o SDK do Firebase para C++ ao seu projeto em C ++.

A adição do Firebase ao projeto em C++ envolve tarefas no Console do Firebase e no projeto em C++ aberto (por exemplo, você faz o download dos arquivos de configuração do Firebase no console e os move para o projeto em C++).

Android

  1. No Console do Firebase, abra a seção Dynamic Links.
  2. Se você ainda não aceitou os termos de serviço e definiu um domínio para o Dynamic Links, faça isso quando solicitado.

    Se você já tem um domínio do Dynamic Links, anote-o. Você precisa fornecer um domínio do Dynamic Links ao criar links dinâmicos de maneira programática.

  3. Recomendado: especifique os padrões de URL permitidos nos seus links diretos e links de fallback. Ao fazer isso, você evita que pessoas não autorizadas criem links dinâmicos que redirecionam para sites que você não controla a partir do seu domínio. Consulte Padrões de URL da lista de permissões.

iOS

  1. No Console do Firebase, abra a seção Dynamic Links.
  2. Se você ainda não aceitou os termos de serviço e definiu um domínio para o Dynamic Links, faça isso quando solicitado.

    Se você já tem um domínio do Dynamic Links, anote-o. Você precisa fornecer um domínio do Dynamic Links ao criar links dinâmicos de maneira programática.

  3. A biblioteca de cliente em C++ do Firebase Dynamic Links usa esquemas personalizados de URL no iOS para processar os links. Adicione os esquemas ao app para receber esses links:
    1. Para abrir a configuração do projeto, clique duas vezes no nome dele, 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 ao código do cliente revertido. 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 corresponde ao código do pacote do seu app. Por exemplo, se o código for com.example.ios, digite esse valor na caixa Esquemas de URL. Você pode encontrar o ID do pacote do seu app na guia Geral da configuração do projeto (Identidade > Identificador do pacote).

Usar o Console do Firebase

Caso você queira fazer testes ou facilitar para sua equipe de marketing a criação de um link a ser usado em uma postagem de mídia social, acesse o Console do Firebase e siga o formulário passo a passo para gerar um link dinâmico único da maneira mais simples.

Como usar a API do Firebase Dynamic Links

Criar e inicializar o app

Antes de gerar links dinâmicos, você precisa criar e inicializar um objeto firebase::App.

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

#include "firebase/app.h"

A próxima etapa varia de acordo com a plataforma:

Android

Transmita o ambiente JNI e uma referência jobject à atividade Java como argumentos para criar o firebase::App:

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

iOS

Crie o firebase::App:

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

Inicializar biblioteca de links dinâmicos

Antes de criar um link dinâmico, inicialize a biblioteca de links dinâmicos:

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

Como criar um link dinâmico longo a partir de parâmetros

Para criar um link dinâmico, gere um objeto DynamicLinkComponents, defina qualquer um dos membros opcionais para configuração extra e envie para dynamic_links::GetShortLink ou dynamic_links::GetLongLink.

O pequeno exemplo a seguir cria um link dinâmico longo para https://www.example.com/ que pode ser aberto com o app para Android com.example.android.package_name e o app para iOS com.example.ios:

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

Como criar um link dinâmico curto

Para criar um link dinâmico curto, envie um link longo gerado anteriormente para GetShortLink ou crie DynamicLinkComponents da mesma maneira indicada acima.

Opcionalmente, GetShortLink tem um parâmetro de configuração adicional DynamicLinkOptions com PathLength. Isso permite que você controle como o link deve ser gerado. Para gerar um link curto, é necessária uma solicitação de rede para o back-end do Firebase. Portanto, GetShortLink é assíncrono e retorna um Future<GeneratedLink>.

Por exemplo:

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

Se o programa tiver um loop de atualização executado regularmente (por exemplo, 30 ou 60 vezes por segundo), será possível verificar os resultados a cada atualização:

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());
  }
}