Integrar con Flutter
Durante el desarrollo de aplicaciones mĂłviles con React Native, es necesario mostrar contenido web dentro de una aplicaciĂłn. Para lograr esto, existen varias opciones, entre las cuales se destacan el uso de Custom Tabs (para Android) y Safari View Controller (para iOS). Estas tecnologĂas permiten 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.
A continuaciĂłn, selecciona el sistema operativo para el que quieres integrar y sigue el paso a paso indicado.
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
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
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
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.