Integrar com React Native Expo Go
Durante o desenvolvimento de aplicaçÔes mĂłveis com React Native, Ă© necessĂĄrio exibir conteĂșdo web dentro de um aplicativo. Para conseguir isso, existem vĂĄrias opçÔes, entre as quais se destacam o uso de Custom Tabs (para Android) e Safari View Controller (para iOS). Essas tecnologias permitem abrir pĂĄginas da web em um navegador nativo integrado ao aplicativo, proporcionando uma experiĂȘncia de navegação mais fluida e consistente para os usuĂĄrios.
A seguir, selecione o sistema operacional para o qual vocĂȘ deseja integrar e siga o passo a passo indicado.
Nesta etapa iremos instalar e configurar as dependĂȘncias necessĂĄrias para implementar Custom Tabs em seu projeto desenvolvido em React Native.
Uso de Expo-Web-Browser
Essa dependĂȘncia fornece acesso ao navegador, neste caso Custom tabs para o Android. TambĂ©m lida com o redirecionamento.
Para instalĂĄ-la, execute o seguinte comando no seu terminal:
yarn
yarn add expo-web-browser
Implementação do Expo-Web-Browser
Para implementar a dependĂȘncia Expo-Web-Browser, siga o exemplo abaixo.
JavaScript
import { StatusBar } from "expo-status-bar"; import { StyleSheet, Button, View } from "react-native"; import { openBrowserAsync } from "expo-web-browser"; export default function ExpoWebBrowserExample(url) { return ( < View style = { styles.container } > < Button title = "Open Browser" onPress = { () => openBrowserAsync('YOUR-URL-PREFERENCE') } /> <StatusBar style="auto" / > < /View> ); } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: "#fff", alignItems: "center", justifyContent: "center", }, });
Como retornar para sua app
Deep Links, tambĂ©m conhecidos como links diretos, sĂŁo uma forma poderosa de permitir a navegação direta para telas ou seçÔes especĂficas de uma aplicação mĂłvel.
Criar um Deep Link
A partir do nosso checkout, Ă© possĂvel configurar Deep Links para retornar ao sua aplicação, seja clicando em um link "Voltar" ou automaticamente apĂłs concluir um fluxo de pagamento bem-sucedido, redirecionando-o de volta ao sua aplicação.
Para isso, devemos adicionar as propriedades back_urls
e auto_return
ao criar a preferĂȘncia de pagamento, conforme necessĂĄrio.
Para saber mais, vocĂȘ pode acessar a documentação sobre URLs de retorno.
Configuração da aplicação para gerenciar o Deep Link
Para receber e gerenciar o Deep Link, é necessårio configurar no projeto React Native o esquema (scheme) e o caminho (path) que compÔem os Deep Links que recebemos para redirecionar para alguma parte da sua aplicação.
Para fazer isso, adicione a seguinte configuração ao seu arquivo app.json localizado na raiz do seu archivo:
JavaScript
{ "expo": { "android": { "intentFilters": [ { "action": "VIEW", "data": [ { "scheme": "myapp", "host": "checkout", "pathPrefix": "/congrats" } ], "category": ["BROWSABLE", "DEFAULT"] } ] } } }
- Neste exemplo, o Deep Link esperado para redirecionar para a aplicação é myapp://checkout/congrats
- A propriedade
pathPrefix
Ă© opcional
Se o projeto ainda nĂŁo tiver um prebuild, Ă© possĂvel testar o Deep Link usando o Expo Go no terminal da seguinte maneira:
plain
// URL local do dispositivo de teste npx uri-scheme open exp://192.168.0.7:19000/--/checkout/congrats --android // Nota: NĂŁo Ă© necessĂĄrio passar o scheme nestes testes
Se vocĂȘ executar um prebuild da aplicação, verifique se o Deep Link para Android foi configurado no arquivo android/app/src/main/AndroidManifest.xml
. O Deep Link deve estar entre as tags activity.
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>
RecepcĂŁo e gerenciamiento do Deep Link
Por Ășltimo, vocĂȘ deve configurar sua aplicação React Native para receber e gerenciar os Deep Links. Isso serĂĄ abordado usando a dependĂȘncia react-native-inappbrowser.
No caso do Android, o fechamento do custom tab é feito automaticamente ao redirecionar para um Deep Link vålido. Caso o link não seja vålido, nenhuma ação de redirecionamento serå executada a partir do custom tab.