Ir para o console

Criar links dinâmicos com C++

É possível 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 seguir estas etapas:

  • Registre seu projeto em C++ e configure-o para usar o Firebase.

    Se esse projeto já usa o Firebase, então ele já está registrado e configurado para essa plataforma.

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

  • Adicione 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 prefixo URI para seus links dinâmicos, faça isso quando solicitado.

    Se você já tem um prefixo URI do Dynamic Links, anote-o, porque ele será necessário ao criar links dinâmicos de maneira programática.

  3. Recomendado: especifique os padrões de URL permitidos nos seus links diretos e 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 Autorizar padrões de URL.

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 prefixo URI para seus links dinâmicos, faça isso quando solicitado.

    Se você já tem um prefixo URI do Dynamic Links, anote-o. Ao criar links dinâmicos de maneira programática, é preciso fornecer um domínio do Dynamic Links.

  3. A biblioteca de cliente C++ do Firebase Dynamic Links usa esquemas de URL personalizado no iOS para processar os links. Você precisa adicionar 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 ID do cliente inverso. Para encontrar esse valor, abra o arquivo de configuração GoogleService-Info.plist e procure a chave REVERSED_CLIENT_ID. Copie e cole o valor da chave na caixa Esquemas de URL da página de configuração. Deixe os outros campos em branco.
    3. Clique no botão + e adicione um segundo esquema de URL, que é igual ao ID do pacote do seu app. Por exemplo, se o ID do pacote for com.example.ios, digite esse valor na caixa Esquemas de URL. É possível encontrar o ID do pacote do seu app na guia Geral das configurações do seu projeto (Identidade > Código do pacote).

Usar o Console do Firebase

Caso você queira fazer testes ou facilitar a criação de um link a ser usado pela sua equipe de marketing 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 de forma fácil.

Domínios personalizados

Para ter maior controle sobre o branding do link dinâmico, use seu próprio domínio em vez de um subdomínio goo.gl ou page.link. Siga estas instruções a fim de configurar um domínio personalizado para seu projeto.

Como usar a API Firebase Dynamic Links

Criar e inicializar o app

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

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

#include "firebase/app.h"

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

Android

Para criar o firebase::App, transmita o ambiente JNI e uma referência jobject à atividade Java como 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"));

Inicializar biblioteca do Dynamic Links

Antes de criar um link dinâmico, inicialize a biblioteca do Dynamic Links:

::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 transmita esse objeto 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 pode ter um parâmetro de configuração adicional DynamicLinkOptions com a propriedade PathLength. Ele permite que você controle como o link será gerado. Para gerar um link curto, é preciso 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 com frequência, como 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());
  }
}