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.
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
.
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 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.
ConfiguraciĂłn de la aplicaciĂłn para la gestiĂłn del Deep Link
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.
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.