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 destaca el uso de Custom Tabs. Esta tecnologĆa te permitirĆ” abrir pĆ”ginas web en un navegador nativo integrado en la aplicaciĆ³n, lo que brinda una experiencia de navegaciĆ³n mĆ”s fluida y coherente para los usuarios.
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, ejecutaa 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
.
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());
}
}
}
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.
Crear un Deep Link
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 debemos 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.
ConfiguraciĆ³n de la aplicaciĆ³n para la gestiĆ³n del Deep Link
Client-Side
Flutter admite utilizar Deep Links en Android 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.
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 Android. 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.