En el desarrollo de aplicaciones móviles con React Native, a menudo surge la necesidad de mostrar contenido web dentro de la 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.
Antes de comenzar a integrar Checkout Pro para Mobile, deberás contar con una order de pago creada en tu backend. Si aún no lo has hecho, ve a Crear y configurar una order de pago.
A continuación, selecciona el sistema operativo para el que quieres integrar y sigue el paso a paso indicado.
En este paso vamos a instalar y configurar las dependencias necesarias para implementar Custom Tabs en tu proyecto desarrollado en React Native.
Esta dependencia provee el acceso al navegador, en este caso Custom tabs para Android. También realiza el manejo del redireccionamiento.
Para instalarla, ejecuta el siguiente comando en tu terminal
yarn
yarn add expo-web-browser
Para implementar la dependencia Expo-Web-Browser, sigue el ejemplo que mostramos a continuación.
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.
Crear un Deep Link
Desde nuestro 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 configurar las URLs de retorno en el objeto config.online al crear la order (success_url, failure_url, pending_url y auto_return), según corresponda.
Para conocer más, puedes acceder a la documentación de URLs de retorno.
No utilices dominios locales en las URLs de retorno (success_url, failure_url, pending_url), tales como 'localhost/' o '127.0.0.1'. Recomendamos usar un servidor con dominio nombrado (DNS) o IPs de desarrollo para poder regresar al sitio después del pago.
Para poder recibir y gestionar el Deep Link es necesario configurar en nuestro proyecto de React Native el scheme y path que componen los Deep Links que recibimos para redireccionar a alguna parte de tu aplicación.
Para ello, agrega la siguiente configuración a ru archivo app.json ubicado en la raíz de tu archivo:
En este ejemplo, el deep link que se espera para redireccionar a la app es myapp://checkout/congrats
La propiedad pathPrefix es opcional
En caso que el proyecto todavía no tenga un prebuild, se puede testear el deep link usando expo go desde la terminal de la siguiente forma:
plain
// url local del dispositivo de test
npx uri-scheme open exp://192.168.0.7:19000/--/checkout/congrats --android
// Nota: No es requerido pasar el scheme en estas pruebas
En caso de correr un prebuild de la aplicación, deberás verificar que el deep link para Android se haya configurado en el archivo android/app/src/main/AndroidManifest.xml. El deep link debe estar entre las etiquetas activity.
Por último, deberás configurar tu aplicación de React Native para recibir y gestionar los Deep Links. Esto se abordará usando la dependencia react-native-inappbrowser.
En el caso de Android, el cierre del custom tab se hace de manera automática al momento de redireccionar a un Deep Link válido. En que caso que el link no sea válido, no se ejecutará ninguna acción de redireccionamiento desde el custom tab.