Participe do Firebase Summit on-line e presencialmente em 18 de outubro de 2022. O Firebase ajuda a desenvolver o seu app mais rápido, lançar com mais confiança e crescer sem dificuldade Quer aprender como? Inscreva-se agora

Criar links dinâmicos em um aplicativo Flutter

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Você pode criar links dinâmicos curtos ou longos com a API Firebase Dynamic Links Builder. Essa API aceita um link dinâmico longo ou um objeto contendo parâmetros de link dinâmico e retorna URLs como os exemplos a seguir:

https://example.com/link/WXYZ
https://example.page.link/WXYZ

Antes de criar links dinâmicos em seu aplicativo Android, você deve incluir o SDK do Firebase. Se seu aplicativo estiver configurado para receber links dinâmicos, você já concluiu essas etapas e pode pular esta seção.

  1. Instale e inicialize os SDKs do Firebase para Flutter , caso ainda não tenha feito isso.

  2. No diretório raiz do seu projeto Flutter, execute o seguinte comando para instalar o plugin Dynamic Links:

    flutter pub add firebase_dynamic_links
    
  3. Se você estiver criando um aplicativo para Android, abra a página de configurações do projeto do console do Firebase e verifique se especificou sua chave de assinatura SHA-1. Se você usa links de aplicativos, especifique também sua chave SHA-256.

  4. No console do Firebase, abra a seção Dynamic Links .

    1. Se você ainda não configurou um domínio para seus links dinâmicos, clique no botão Começar e siga as instruções.

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

    2. Recomendado : no menu "Mais" (⋮), especifique os padrões de URL permitidos em seus links diretos e alternativos. Ao fazer isso, você impede que partes não autorizadas criem links dinâmicos que redirecionam do seu domínio para sites que você não controla.

      Consulte Permitir padrões de URL específicos .

Para criar um Dynamic Link, crie um novo objeto DynamicLinkParameters e passe-o para buildLink() ou buildShortLink() .

O exemplo mínimo a seguir cria um link dinâmico longo para https://www.example.com/ que abre com com.example.app.android no Android e o aplicativo 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 Dynamic Link curto, passe o objeto DynamicLinkParameters para buildShortLink() . Construir o 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, links dinâmicos curtos são gerados com sufixos com apenas alguns caracteres. Embora isso torne os links mais compactos, também introduz a possibilidade de alguém adivinhar um link curto válido. Muitas vezes, não há mal nenhum se alguém fizer isso, porque o link leva a informações públicas.

No entanto, se seus links curtos levarem a informações específicas do usuário, você deverá criar links mais longos com sufixos de 17 caracteres que tornem muito improvável que alguém consiga adivinhar um link dinâmico válido. Para fazer isso, passe ShortDynamicLinkType.unguessable para o método buildShortLink() :

final unguessableDynamicLink = await FirebaseDynamicLinks.instance.buildShortLink(
    dynamicLinkParams,
    shortLinkType: ShortDynamicLinkType.unguessable,
);

Você pode usar a API do Dynamic Link Builder para criar links dinâmicos com qualquer um dos parâmetros compatíveis. Consulte a referência da API .

O exemplo a seguir cria um Dynamic Link 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 do Dynamic Link com os seguintes métodos:

Parâmetros do DynamicLink
setLink O link que seu aplicativo abrirá. Especifique uma URL que seu aplicativo pode manipular, normalmente o conteúdo ou carga útil do aplicativo, que inicia a lógica específica do aplicativo (como creditar o usuário com um cupom ou exibir uma tela de boas-vindas). Esse link deve ser um URL bem formatado, ser codificado em URL corretamente, usar HTTP ou HTTPS e não pode ser outro Link dinâmico.
setDomainUriPrefix Seu prefixo de URL de link dinâmico, que você encontra no Firebase console. Um domínio de link dinâmico se parece com os exemplos a seguir:
https://example.com/link
https://example.page.link
Parâmetros do Android
setFallbackUrl O link para abrir quando o aplicativo não estiver instalado. Especifique isso para fazer algo diferente de instalar seu aplicativo da Play Store quando o aplicativo não estiver instalado, como abrir a versão da Web para dispositivos móveis do conteúdo ou exibir uma página promocional para seu aplicativo.
setMinimumVersion O versionCode da versão mínima do seu aplicativo que pode abrir o link. Se o aplicativo instalado for uma versão mais antiga, o usuário será direcionado à Play Store para atualizar o aplicativo.
IosParameters
setAppStoreId O ID da App Store do seu aplicativo, usado para enviar usuários à App Store quando o aplicativo não está instalado
setFallbackUrl O link para abrir quando o aplicativo não estiver instalado. Especifique isso para fazer algo diferente de instalar seu aplicativo da App Store quando o aplicativo não estiver instalado, como abrir a versão da Web para dispositivos móveis do conteúdo ou exibir uma página promocional para seu aplicativo.
setCustomScheme O esquema de URL personalizado do seu aplicativo, se definido como algo diferente do ID do pacote do seu aplicativo
setIpadFallbackUrl O link para abrir em iPads quando o aplicativo não estiver instalado. Especifique isso para fazer algo diferente de instalar seu aplicativo da App Store quando o aplicativo não estiver instalado, como abrir a versão web do conteúdo ou exibir uma página promocional para seu aplicativo.
setIpadBundleId O ID do pacote do aplicativo iOS a ser usado em iPads para abrir o link. O aplicativo deve estar conectado ao seu projeto na página Visão geral do console do Firebase.
setMinimumVersion O número da versão mínima do seu aplicativo que pode abrir o link. Esse sinalizador é passado para seu aplicativo quando ele é aberto, e seu aplicativo deve decidir o que fazer com ele.
Parâmetros NavigationInfo
setForcedRedirectEnabled Se definido como '1', ignore a página de visualização do aplicativo quando o link dinâmico for aberto e redirecione para o aplicativo ou loja. A página de visualização do aplicativo (ativada por padrão) pode enviar usuários de forma mais confiável para o destino mais apropriado quando eles abrem links dinâmicos em aplicativos; no entanto, se você espera que um link dinâmico seja aberto apenas em aplicativos que podem abrir links dinâmicos de forma confiável sem esta página, você pode desativá-lo com este parâmetro. Este parâmetro afetará o comportamento do Dynamic Link apenas no iOS.
Parâmetros de SocialMetaTag
setTítulo O título a ser usado quando o Link dinâmico é compartilhado em uma postagem social.
setDescrição A descrição a ser usada quando o Link dinâmico é compartilhado em uma postagem social.
setImageUrl O URL para uma imagem relacionada a este link. A imagem deve ter pelo menos 300 x 200 px e menos de 300 KB.
Parâmetros do GoogleAnalytics
setSource
setMedium
setCampanha
definir Termo
setContent
Parâmetros de análise do Google Play. Esses parâmetros (`utm_source`, `utm_medium`, `utm_campaign`, `utm_term`, `utm_content`) são passados ​​para a Play Store, bem como anexados ao conteúdo do link.
Parâmetros do iTunesConnectAnalytics
setProviderToken
setAffiliateToken
setCampanhaToken
Parâmetros de análise do iTunes Connect. Esses parâmetros (`pt`, `at`, `ct`) são passados ​​para a App Store.