Integrar com Flutter
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, vamos implementar o Custom Tabs em uma aplicação Flutter usando flutter_custom_tabs. Mostraremos como instalar as bibliotecas necessĂĄrias, como configurar as dependĂȘncias e daremos exemplos prĂĄticos de como abrir pĂĄginas da web usando o Custom Tabs.
Instalação da dependĂȘncia Flutter Custom Tabs
Para instalar a dependĂȘncia Flutter Custom Tabs, execute o seguinte comando no diretĂłrio raiz do seu projeto:
terminal
$ flutter pub add flutter_custom_tabs
Isso adicionarĂĄ a linha dependencies: flutter_custom_tabs: ^1.2.1
ao arquivo pubspec.yaml do pacote. Ele tambĂ©m executarĂĄ um comando implĂcito flutter pub get
.
Para usar a dependĂȘncia, vocĂȘ deve importĂĄ-la primeiro no cĂłdigo Dart onde deseja exibir o Checkout. Para importar, adicione a seguinte linha no seu cĂłdigo:
dart
import 'package:flutter_custom_tabs/flutter_custom_tabs.dart';
Exemplo de integração do Flutter Custom Tabs
A seguir, compartilhamos um exemplo de integração do Flutter usando o 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()); } } }
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.
Nesta seção da documentação, vocĂȘ encontrarĂĄ como configurar os Deep Links em uma aplicação Flutter com base na documentação oficial do Flutter.
Com a configuração adequada dos Deep Links no Flutter, vocĂȘ poderĂĄ oferecer aos usuĂĄrios a capacidade de acessar diretamente um conteĂșdo especĂfico em sua aplicação, melhorando a navegação e a experiĂȘncia geral do usuĂĄrio.
Criar um Deep Link
A partir do nosso checkout, Ă© possĂvel configurar Deep Links para retornar Ă sua aplicação. Isso pode ser feito clicando em um link "Voltar" ou automaticamente apĂłs a conclusĂŁo bem-sucedida de um fluxo de pagamento, redirecionando-o de volta Ă 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
O Flutter oferece suporte para Deep Links no Android e navegadores da web. Ao abrir uma URL, a tela correspondente serĂĄ exibida em sua aplicação. A seguir, mostraremos como vocĂȘ pode lançar e exibir rotas. Isso pode ser feito criando rotas com nome, seja atravĂ©s do parĂąmetro routes
ou onGenerateRoute
, ou utilizando o widget Router
.
Se a aplicação for executada em um navegador da web, nenhuma configuração adicional serĂĄ necessĂĄria. As rotas sĂŁo tratadas da mesma forma que um Deep Link do Android. Por padrĂŁo, as aplicaçÔes da web lĂȘem o caminho do Deep Link a partir do fragmento de URL usando o padrĂŁo /#/path/to/app/screen
, mas isso pode ser alterado configurando a estratégia de URL para a sua aplicação.