Inicio
DocumentaciĂłn
Recursos
Partners
Comunidad

Recursos

Revisa las actualizaciones de nuestras soluciones y operatividad del sistema o pide soporte técnico.

Partners

Conoce nuestro programa para agencias o desarrolladores que ofrecen servicios de integraciĂłn y vendedores que quieren contratarlos.

Comunidad

Recibe las Ășltimas novedades, pide ayuda a otros integradores y comparte tus conocimientos.

Integrar con Flutter - iOS - Mercado Pago Developers

BĂșsqueda inteligente powered by OpenAI 

Integrar con Flutter

Para integrar Checkout Pro en una aplicaciĂłn mĂłvil desarrollada con Flutter, deberĂĄs mostrar el checkout web dentro de la aplicaciĂłn. Para lograr esto, existen varias opciones, entre las cuales se destacan el uso de Custom Tabs. Esta tecnologĂ­a te permitirĂĄ abrir pĂĄginas web en un navegador nativo integrado en la aplicaciĂłn, brindando una experiencia de navegaciĂłn mĂĄs fluida y coherente para los usuarios.

Importante
Antes de comenzar a integrar Checkout Pro para Mobile, deberĂĄs contar con una preferencia creada en tu backend. Si aĂșn no lo has hecho, ve a Crear preferencias.

En este paso vamos a implementar Custom Tabs en una aplicaciĂłn de Flutter utilizando flutter_custom_tabs. Te mostraremos cĂłmo realizar la instalaciĂłn de las bibliotecas necesarias, cĂłmo configurar las dependencias y te daremos ejemplos prĂĄcticos de cĂłmo abrir pĂĄginas web utilizando Custom Tabs.

InstalaciĂłn de la dependencia Flutter Custom Tabs

Client-Side

Para la instalaciĂłn de la dependencia Flutter Custom Tabs, ejecuta el siguiente comando en el directorio raĂ­z de tu proyecto:

terminal

$ flutter pub add flutter_custom_tabs

Esto agregarå la línea dependencies: flutter_custom_tabs: ^1.2.1 al archivo pubspec.yaml del paquete. También ejecutarå un comando implícito flutter pub get.

Nota
Te invitamos a conocer mĂĄs en la documentaciĂłn oficial de Flutter Custom Tabs .

Para hacer uso de la dependencia deberĂĄs importarla primero en el cĂłdigo Dart donde vayas a requerir mostrar el Checkout. Para hacerlo, agrega la siguiente lĂ­nea en tu cĂłdigo:

dart

import 'package:flutter_custom_tabs/flutter_custom_tabs.dart';

Ejemplo de integraciĂłn de Flutter Custom Tabs

A continuaciĂłn, compartimos un ejemplo de integraciĂłn de 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 la visualizaciĂłn segĂșn la plataforma
Es posible personalizar el look & feel de la pantalla a ser mostrada especificando opciones para cada plataforma. Para personalizar la apariencia en iOS, deberĂĄs hacerlo con SFSSafariViewController. Conoce mĂĄs en la documentaciĂłn oficial .

CĂłmo volver a tu App

Client-Side

Los Deep Links, también conocidos como enlaces profundos, son una forma poderosa de permitir la navegación directa a pantallas o secciones específicas de una aplicación móvil. En Flutter, configurar correctamente los Deep Links es esencial para garantizar una experiencia de usuario fluida y sin problemas.

En esta secciĂłn de la documentaciĂłn, encontrarĂĄs cĂłmo configurar los Deep Links en una aplicaciĂłn de Flutter basados en la documentaciĂłn oficial de Flutter.

Con la configuraciĂłn adecuada de los Deep Links en Flutter, podrĂĄs ofrecer a los usuarios la capacidad de acceder directamente a contenido especĂ­fico en tu aplicaciĂłn, mejorando la navegaciĂłn y la experiencia general del usuario.

Desde el Checkout es posible configurar Deep Links para volver a tu aplicación, ya sea haciendo click en un link de “Volver”, o de forma automática al terminar todo un flujo de pago exitoso, para luego ser redirigido a tu App.

Para esto debes agregar en la creaciĂłn de la preferencia de pago las propiedades back_urls y auto_return segĂșn corresponda.

Para conocer mĂĄs, puedes acceder a la documentaciĂłn de URLs de retorno.

Client-Side

Flutter admite utilizar Deep Links en iOS y navegadores web. Al abrir una URL, se mostrarĂĄ esa pantalla en tu app. A continuaciĂłn, te mostraremos cĂłmo puedes lanzar y mostrar rutas creando rutas con nombre (ya sea con el parĂĄmetro routes o con onGenerateRoute), o con el widget Router.

Importante
Las rutas con nombre ya no se recomiendan para la mayorĂ­a de las aplicaciones.

Si se ejecuta la aplicaciĂłn en un navegador web, no es necesaria ninguna configuraciĂłn adicional. Las rutas se gestionan del mismo modo que un enlace profundo de iOS. Por defecto, las aplicaciones web leen la ruta del enlace profundo a partir del fragmento de url utilizando el patrĂłn /#/path/to/app/screen, pero esto puede cambiarse configurando la estrategia de URL para tu app.

Para conocer mĂĄs, ingresa a las documentaciones oficiales sobre cĂłmo manejar DeepLinks para aplicaciones Flutter y cĂłmo configurar Universal Link para iOS