Inicio
Documentação
Recursos
Parcerias
Comunidade

Recursos

Confira as atualizaçÔes das nossas soluçÔes e do funcionamento do sistema ou peça suporte técnico.

Parcerias

Conheça nosso programa para agĂȘncias ou desenvolvedores que oferecem serviços de integração e vendedores que desejam contratĂĄ-los.

Comunidade

Fique por dentro das Ășltimas novidades, peça ajuda a outros integradores e compartilhe seu conhecimento.

Integrar com Flutter - iOS - Mercado Pago Developers

Busca inteligente powered by OpenAI 

Integrar com Flutter

Para integrar o Checkout Pro em uma aplicação mĂłvel desenvolvida com o Flutter, vocĂȘ precisarĂĄ exibir o checkout da web dentro da aplicação. Para isso, existem diversas opçÔes, sendo uma delas o uso de Custom Tabs. Essa tecnologia permite que pĂĄginas da web sejam abertas em um navegador nativo incorporado Ă  aplicação, proporcionando uma experiĂȘncia de navegação mais fluĂ­da e consistente aos usuĂĄrios.

Importante
Antes de começar a integrar o Checkout Pro para Mobile, certifique-se de ter uma preferĂȘncia criada em seu backend. Se vocĂȘ ainda nĂŁo fez isso, vĂĄ para Criar preferĂȘncias.

Nesta etapa, vamos implementar Custom Tabs em uma aplicação Flutter usando flutter_custom_tabs. Mostraremos como instalar as bibliotecas necessĂĄrias, como configurar as dependĂȘncias e daremos exemplos prĂĄticos de como abrir pĂĄginas da web usando Custom Tabs.

Instalação da dependĂȘncia Flutter Custom Tabs

Client-Side

Para instalar a dependĂȘncia Flutter Custom Tabs, vocĂȘ pode executar o seguinte comando no diretĂłrio raiz do seu projeto:

terminal

$ flutter pub add flutter_custom_tabs

Isso adicionarå a linha dependencies: flutter_custom_tabs: ^1.2.1 ao arquivo pubspec.yaml do pacote. Também executarå um comando implícito flutter pub get.

Para usar a dependĂȘncia, vocĂȘ deve importĂĄ-la primeiro no cĂłdigo Dart onde deseja exibir o Checkout. Para importar, adicione a seguinte linha no seu cĂłdigo:

dart

import 'package:flutter_custom_tabs/flutter_custom_tabs.dart';

Exemplo de integração do Flutter Custom Tabs

A seguir, compartilhamos um exemplo da integração do Flutter usando Custom Tabs:

dart

import 'package:flutter/material.dart';
import 'package:flutter_custom_tabs/flutter_custom_tabs.dart';

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        body: Center(
          child: TextButton(
            child: const Text('Show Flutter homepage'),
            onPressed: () => _launchURL(context),
          ),
        ),
      ),
    );
  }

  void _launchURL(BuildContext context) async {
    try {
      await launch(
        'https://flutter.dev',
        customTabsOption: CustomTabsOption(
          toolbarColor: Theme.of(context).primaryColor,
          enableDefaultShare: true,
          enableUrlBarHiding: true,
          showPageTitle: true,
          animation: CustomTabsAnimation.slideIn(),
          // or user defined animation.
          animation: const CustomTabsAnimation(
            startEnter: 'slide_up',
            startExit: 'android:anim/fade_out',
            endEnter: 'android:anim/fade_in',
            endExit: 'slide_down',
          ),
          extraCustomTabs: const <String>[
            // ref. https://play.google.com/store/apps/details?id=org.mozilla.firefox
            'org.mozilla.firefox',
            // ref. https://play.google.com/store/apps/details?id=com.microsoft.emmx
            'com.microsoft.emmx',
          ],
        ),                    
        safariVCOption: SafariViewControllerOption(
          preferredBarTintColor: Theme.of(context).primaryColor,
          preferredControlTintColor: Colors.white,
          barCollapsingEnabled: true,
          entersReaderIfAvailable: false,
          dismissButtonStyle: SafariViewControllerDismissButtonStyle.close,        
        ),
      );
    } catch (e) {
      // An exception is thrown if browser app is not installed on Android device.
      debugPrint(e.toString());
    }
  }
}
Personalizar a aparĂȘncia de acordo com a plataforma
É possĂ­vel personalizar a aparĂȘncia da tela que serĂĄ exibida especificando opçÔes para cada plataforma. Para personalizar a aparĂȘncia em iOS, vocĂȘ precisarĂĄ fazer isso com o SFSSafariViewController. Saiba mais na documentação oficial .

Como retornar Ă  sua app

Client-Side

Deep Links, também conhecidos como links diretos, são uma forma poderosa de permitir a navegação direta para telas ou seçÔes específicas de uma aplicação móvel.

Nesta seção da documentação, vocĂȘ encontrarĂĄ como configurar os Deep Links em uma aplicação Flutter com base na documentação oficial do Flutter.

Com a configuração adequada dos Deep Links no Flutter, vocĂȘ poderĂĄ oferecer aos usuĂĄrios a capacidade de acessar diretamente um conteĂșdo especĂ­fico em sua aplicação, melhorando a navegação e a experiĂȘncia geral do usuĂĄrio.

A partir do nosso checkout, é possível configurar Deep Links para retornar à sua aplicação. Isso pode ser feito clicando em um link "Voltar" ou automaticamente após a conclusão bem-sucedida de um fluxo de pagamento, redirecionando-o de volta à sua aplicação.

Para isso, devemos adicionar as propriedades back_urls e auto_return ao criar a preferĂȘncia de pagamento, conforme necessĂĄrio.

Para saber mais, vocĂȘ pode acessar a documentação sobre URLs de retorno.

Client-Side

O Flutter oferece suporte para Deep Link no iOS e navegadores da web. Ao abrir uma URL, a tela correspondente serĂĄ exibida em sua aplicação. A seguir, mostraremos como vocĂȘ pode lançar e exibir rotas. Isso pode ser feito criando rotas com nome, seja atravĂ©s do parĂąmetro routes ou onGenerateRoute, ou utilizando o widget Router.

Importante
As rotas com nome nĂŁo sĂŁo mais recomendadas para a maioria dos aplicativos.

Se a aplicação for executada em um navegador da web, nenhuma configuração adicional serĂĄ necessĂĄria. As rotas sĂŁo tratadas da mesma forma que um Deep Link do Android. Por padrĂŁo, as aplicaçÔes da web lĂȘem o caminho do Deep Link a partir do fragmento de URL usando o padrĂŁo /#/path/to/app/screen, mas isso pode ser alterado configurando a estratĂ©gia de URL para a sua aplicação.