Crie Dynamic Links curtos ou longos com a API Firebase Dynamic Links Builder. Essa API aceita um link dinâmico longo ou um objeto com parâmetros correspondentes e retorna URLs, como no exemplo a seguir:
https://example.com/link/WXYZ
https://example.page.link/WXYZ
Configurar o Firebase e o SDK do Dynamic Links
Antes de criar Dynamic Links no seu app Android, é necessário incluir o SDK do Firebase. Caso seu app esteja configurado para receber links dinâmicos, você já concluiu essas etapas e pode ignorar esta seção.
Instale e inicialize os SDKs do Firebase para Flutter, caso ainda não tenha feito isso.
No diretório raiz do seu projeto do Flutter, execute o comando a seguir para instalar o plug-in de Dynamic Links:
flutter pub add firebase_dynamic_links
Se você estiver criando um app Android, abra a página Configurações do projeto no Console do Firebase e verifique se a chave de assinatura SHA-1 foi especificada. Se você usa links de apps, também precisa especificar sua chave SHA-256.
No Console do Firebase, abra a seção Dynamic Links.
Se você ainda não configurou um domínio para o Dynamic Links, clique no botão Primeiros passos e siga as instruções.
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.
Recomendado: no menu "Mais" (⋮), especifique os padrões de URL permitidos nos seus links diretos e substitutos. Ao fazer isso, você evita que pessoas não autorizadas criem links dinâmicos que redirecionam para sites que você não controla partindo do seu domínio. Consulte Permitir padrões de URL específicos.
Criar um link dinâmico a partir de parâmetros
Para criar um link dinâmico, crie um novo objeto DynamicLinkParameters
e transmita-o
para buildLink()
ou buildShortLink()
.
O exemplo mínimo a seguir cria um link dinâmico longo para
https://www.example.com/
, que é aberto com com.example.app.android
no Android
e com o app com.example.app.ios
no iOS:
final dynamicLinkParams = DynamicLinkParameters(
link: Uri.parse("https://www.example.com/"),
uriPrefix: "https://example.page.link",
androidParameters: const AndroidParameters(packageName: "com.example.app.android"),
iosParameters: const IOSParameters(bundleId: "com.example.app.ios"),
);
final dynamicLink =
await FirebaseDynamicLinks.instance.buildLink(dynamicLinkParams);
Para criar um link dinâmico curto, transmita o objeto DynamicLinkParameters
para
buildShortLink()
. A criação do link curto requer uma chamada de rede.
Por exemplo:
final dynamicLinkParams = DynamicLinkParameters(
link: Uri.parse("https://www.example.com/"),
uriPrefix: "https://example.page.link",
androidParameters: const AndroidParameters(packageName: "com.example.app.android"),
iosParameters: const IOSParameters(bundleId: "com.example.app.ios"),
);
final dynamicLink =
await FirebaseDynamicLinks.instance.buildShortLink(dynamicLinkParams);
Por padrão, os links dinâmicos curtos são gerados com sufixos que tem apenas alguns caracteres. Embora isso torne os links mais compactos, também apresenta a possibilidade de alguém conseguir adivinhar um link curto válido. Muitas vezes, não há danos se alguém fizer isso, porque o link leva a informações públicas.
No entanto, caso seus links curtos levem a informações específicas do usuário, crie
links mais longos com sufixos de 17 caracteres, que tornam muito improvável que
alguém consiga adivinhar um link dinâmico válido. Para fazer isso, transmita ShortDynamicLinkType.unguessable
para o método buildShortLink()
:
final unguessableDynamicLink = await FirebaseDynamicLinks.instance.buildShortLink(
dynamicLinkParams,
shortLinkType: ShortDynamicLinkType.unguessable,
);
Parâmetros de link dinâmico
É possível usar a API Dynamic Link Builder para criar Dynamic Links com qualquer um dos parâmetros aceitos. Consulte a referência da API.
O exemplo a seguir cria um link dinâmico com vários parâmetros comuns definidos:
final dynamicLinkParams = DynamicLinkParameters(
link: Uri.parse("https://www.example.com/"),
uriPrefix: "https://example.page.link",
androidParameters: const AndroidParameters(
packageName: "com.example.app.android",
minimumVersion: 30,
),
iosParameters: const IOSParameters(
bundleId: "com.example.app.ios",
appStoreId: "123456789",
minimumVersion: "1.0.1",
),
googleAnalyticsParameters: const GoogleAnalyticsParameters(
source: "twitter",
medium: "social",
campaign: "example-promo",
),
socialMetaTagParameters: SocialMetaTagParameters(
title: "Example of a Dynamic Link",
imageUrl: Uri.parse("https://example.com/image.png"),
),
);
final dynamicLink =
await FirebaseDynamicLinks.instance.buildShortLink(dynamicLinkParams);
Você pode definir os parâmetros de link dinâmico com os seguintes métodos:
Parâmetros de link dinâmico | |
---|---|
setLink | O link que será aberto pelo app. É possível especificar um URL que pode ser processado pelo seu app, geralmente o conteúdo/payload de um app, que pode iniciar uma lógica específica do app, como creditar o usuário com um cupom ou exibir uma tela de boas-vindas. Esse link precisa ser um URL de formato correto, ter a codificação de URL adequada e usar HTTP ou HTTPS. Além disso, ele não pode ser outro link dinâmico. |
setDomainUriPrefix | Seu prefixo de URL de Dynamic Link, que você pode encontrar no Console do Firebase. Um
domínio de Dynamic Link é semelhante aos exemplos a seguir:
https://example.com/link https://example.page.link |
AndroidParameters | |
---|---|
setFallbackUrl | O link que será aberto quando o aplicativo não estiver instalado. Especifique isso para realizar outra ação que não seja instalar o app da Play Store, quando ele não estiver instalado. A ação pode ser abrir a versão Web para dispositivos móveis com o conteúdo ou exibir uma página promocional para o app. |
setMinimumVersion | O versionCode da versão mínima do seu app que pode abrir o link. Se o app instalado for uma versão mais antiga, o usuário será direcionado para a Play Store para fazer a atualização. |
IosParameters | |
---|---|
setAppStoreId | O ID da App Store do seu app, usado para direcionar os usuários à App Store, quando o app não estiver instalado. |
setFallbackUrl | O link que será aberto quando o aplicativo não estiver instalado. Especifique isso para realizar outra ação que não seja instalar o app da App Store. quando ele não estiver instalado. A ação pode ser abrir a versão Web para dispositivos móveis com o conteúdo ou exibir uma página promocional para o app. |
setCustomScheme | O esquema de URL personalizado do seu app, se definido de modo diferente do ID do pacote do seu app. |
setIpadFallbackUrl | O link a ser aberto em iPads quando o app não estiver instalado. Especifique isso para realizar outra ação, que não seja instalar o app da App Store, quando ele não estiver instalado. A ação pode ser abrir a versão Web com o conteúdo ou exibir uma página promocional para o app. |
setIpadBundleId | O código do pacote do app para iOS a ser usado em iPads para abrir o link. O app precisa estar conectado ao seu projeto na Página de visão geral do Console do Firebase. |
setMinimumVersion | O número da versão mínima do seu app que pode abrir o link. Essa sinalização é transmitida para seu app no momento em que ele é aberto, e seu app precisa decidir o que fazer. |
NavigationInfoParameters | |
---|---|
setForcedRedirectEnabled | Se configurado como "1", ignore a página de visualização do app, quando o link dinâmico for aberto e, em vez disso, redirecione ele para o aplicativo ou a loja. A página de visualização do app (ativada por padrão) pode enviar usuários de maneira mais confiável para o destino mais apropriado, quando eles abrem links dinâmicos em apps. No entanto, se você espera que um link dinâmico seja aberto apenas em apps que possam abrir links dinâmicos de maneira confiável sem esta página, você pode desativar ele usando este parâmetro. Este parâmetro vai afetar o comportamento do link dinâmico somente no iOS. |
SocialMetaTagParameters | |
---|---|
setTitle | O título a ser usado quando o Dynamic Link é compartilhado em uma postagem de mídia social. |
setDescription | A descrição a ser usada quando o Dynamic Link é compartilhado em uma postagem de mídia social. |
setImageUrl | O URL para uma imagem relacionada a este link. A imagem precisa ser de pelo menos 300 x 200 px e ter menos de 300 KB. |
GoogleAnalyticsParameters | |
---|---|
setSource setMedium setCampaign setTerm setContent |
Parâmetros de análise para o Google Play. Esses parâmetros (utm_source, utm_medium, utm_campaign, utm_term, utm_content) são transmitidos para a Play Store, bem como anexados ao payload do link. |
ItunesConnectAnalyticsParameters | |
---|---|
setProviderToken setAffiliateToken setCampaignToken |
Parâmetros de análise para o iTunes Connect. Esses parâmetros (pt, at, ct) são transmitidos para a App Store. |