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.

React Native CLI - IntegraciĂłn para aplicaciones mĂłviles - Mercado Pago Developers

Integrar con React Native CLI

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.

Importante
Antes de comenzar a integrar Checkout Pro para Mobile, deberĂĄs contar con una preferencia de pago creada en tu backend. Si aĂșn no lo has hecho, ve a Crear y configurar una preferencia 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.

Uso de InAppBrowser

Con React Native CLI, te sugerimos usar React-Native-InAppBrowser, una dependencia altamente flexible que brinda una soluciĂłn completa para integrar un navegador web dentro de tu aplicaciĂłn de React Native. Al considerar el uso de React-Native-InAppBrowser-Reborn se tuvieron en cuenta los siguientes aspectos:

  • Es una dependencia que permite brindar una experiencia de navegaciĂłn web integrada y fluida dentro de la aplicaciĂłn.
  • Cuenta con una gran variedad de funciones personalizables para adaptarse a las necesidades especĂ­ficas de la aplicaciĂłn.
  • Mantiene a los usuarios dentro del contexto de la aplicaciĂłn aumentando la retenciĂłn y la coherencia de la experiencia.

Para instalarla, ejecuta el siguiente comando en tu terminal.

          
npm install react-native-inappbrowser-reborn --save

        
          
yarn add react-native-inappbrowser-reborn

        

Android support

Si utilizas Android Support, tu archivo android/build.gradle debería tener las propiedades que describimos a continuación. En caso de faltar alguna, agrégala. Las versiones pueden ser iguales o superiores.

plain

buildscript {
  ext {
    buildToolsVersion = "28.0.3"
    minSdkVersion = 16
    compileSdkVersion = 28
    targetSdkVersion = 28
    // Only using Android Support libraries
    supportLibVersion = "28.0.0"
  }

AndroidX

Si utilizas AndroidX, tu archivo debería tener estas propiedades. En caso de faltar alguna, agrégala. Las versiones pueden ser iguales o superiores.

plain

buildscript {
  ext {
    buildToolsVersion = "30.0.2"
    minSdkVersion = 21
    compileSdkVersion = 30
    targetSdkVersion = 30
    ndkVersion = "21.4.7075529"
    // Remove 'supportLibVersion' property and put specific versions for AndroidX libraries
    androidXAnnotation = "1.2.0"
    androidXBrowser = "1.3.0"
    // Put here other AndroidX dependencies
  }

ImplementaciĂłn de React-Native-Inappbrowser

Para implementar la dependencia React-Native-Inappbrowser, sigue el ejemplo que mostramos a continuaciĂłn.

JavaScript

import {
	Button,
	Linking
} from 'react-native';
import InAppBrowser from 'react-native-inappbrowser-reborn';
const ButtonCustomTabs = () => {
		const openUrl = async (url) => {
			if (await InAppBrowser.isAvailable()) {
				InAppBrowser.open(url, {
					// iOS Properties
					dismissButtonStyle: 'cancel',
					preferredBarTintColor: '#453AA4',
					preferredControlTintColor: 'white',
					readerMode: false,
					animated: true,
					modalEnabled: true,
					// Android Properties
					showTitle: true,
					toolbarColor: '#6200EE',
					secondaryToolbarColor: 'black',
					enableUrlBarHiding: true,
					enableDefaultShare: true,
					forceCloseOnRedirection: false, // Animation
					animations: {
						startEnter: 'slide_in_right',
						startExit: 'slide_out_left',
						endEnter: 'slide_in_left',
						endExit: 'slide_out_right',
					},
				});
			} else {
				Linking.openURL(url);
			}
		};
		return ( < Button title = "Press Me"
			onPress = {
				() =>
				openUrl('YOUR-URL-PREFERENCE')
			}
			/> );
		};
		export default ButtonCustomTabs;

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.

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 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.

Para poder recibir y gestionar el Deep Link es necesario configurar en el proyecto de React Native el scheme y path que componen los Deep Links que recibiste para redireccionar a alguna parte de tu aplicaciĂłn. Para ello, agrega el deep link en el archivo android /app/src/main/AndroidManifest.xml entre las etiquetas "activity".

En el ejemplo que te mostramos a continuaciĂłn, configurarĂĄs un Deep Link de la forma myapp://checkout/congrats.

AndroidManifest.xml

<activity ....> ....
<intent-filter data-generated="true">
<action android:name="android.intent.action.VIEW"/>
<data android:scheme="myapp" android:host="checkout" android:pathPrefix="/congrats"/> <category android:name="android.intent.category.BROWSABLE"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
.... </activity>

La propiedad pathPrefix es opcional y puede ser agregada para dirigir una vista especĂ­fica de la aplicaciĂłn.

Por Ășltimo, veremos cĂłmo podemos configurar nuestra 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.