waas_sdk 1.0.1 copy "waas_sdk: ^1.0.1" to clipboard
waas_sdk: ^1.0.1 copied to clipboard

Flutter WebView com bridge WaaS para integrar a experiência WaaS (Wealth as a Service) em aplicativos nativos iOS e Android.

waas_sdk #

SDK Flutter para integrar a experiência WaaS (Wealth as a Service) da Warren em aplicativos iOS e Android via WebView com bridge nativo.

Instalação #

dependencies:
  waas_sdk: ^1.0.0

Quick Start #

import 'package:waas_sdk/waas_sdk.dart';

// Abra a experiência WaaS passando o token de acesso e o tenant
Navigator.of(context).push(
  MaterialPageRoute(
    builder: (context) => SafeArea(
      bottom: false,
      child: WaasView(
        token: accessToken,       // JWT obtido via /authenticate
        tenant: 'seu-tenant',     // Identificador do tenant
      ),
    ),
  ),
);

Autenticação #

O SDK espera um access token JWT obtido via client_credentials no endpoint de autenticação WaaS. O token é injetado automaticamente na WebView — o app host é responsável apenas por obtê-lo e passá-lo ao WaasView.

// Exemplo simplificado de obtenção do token
final response = await http.post(
  Uri.parse('https://api.waas.warren.com.br/authenticate'),
  headers: {'Content-Type': 'application/x-www-form-urlencoded'},
  body: 'grant_type=client_credentials&client_id=$clientId&client_secret=$clientSecret',
);
final accessToken = jsonDecode(response.body)['access_token'];

API #

WaasView #

Widget principal do SDK. Renderiza a experiência WaaS dentro de uma WebView gerenciada.

Parâmetro Tipo Obrigatório Descrição
token String Sim JWT de acesso obtido via autenticação WaaS.
tenant String Sim Slug do tenant (ex: sample, plenapay).
loadingPageBackgroundColor Color? Não Cor de fundo do overlay de carregamento.
loaderWidget Widget? Não Widget customizado exibido durante o loading.

WaaSChannel #

Bridge de comunicação entre a WebView e o app nativo.

  • injectToken(String token) — Injeta o token na WebView e dispara o evento tokenReady.
  • injectBridgeScript() — Inicializa os listeners de mensagens na WebView.

WaaSMessageHandler #

Handler de mensagens recebidas da WebView via bridge. Processa comandos como closeWebView (fecha a tela e retorna ao app host).

extractFormattedClientId(String? token) #

Utilitário que extrai e formata o client_id do payload JWT (ex: banco-rendimento.zionbancorendimento).

Bridge — Protocolo de Mensagens #

A comunicação entre a WebView e o app nativo segue o protocolo request/response:

// Request (WebView → App)
{
  "id": "uuid",
  "type": "request",
  "method": "closeWebView",
  "meta": { "tenantId": "sample", "bridgeVersion": "1.0.0" }
}

// Response (App → WebView)
{
  "id": "uuid",
  "origin": "sdk",
  "type": "response",
  "result": { "ok": true },
  "meta": { "bridgeVersion": "1.0.0", "tenantId": "sample" }
}

Métodos suportados #

Método Descrição
closeWebView Fecha a WebView e retorna ao app host via Navigator.pop().

Exemplo completo #

O app samples/waas_playground demonstra a integração completa:

samples/waas_playground/
├── .env                          # WAAS_CLIENT_ID e WAAS_CLIENT_SECRET
├── lib/
│   ├── main.dart                 # Entry point — abre WaasView ao clicar no FAB
│   ├── controllers/
│   │   └── waas_playground_controller.dart
│   └── services/
│       ├── waas_access_token_service.dart   # Chamada HTTP ao /authenticate
│       └── waas_access_token_manager.dart   # Cache e refresh do token

Para rodar:

cd samples/waas_playground
cp .env.example .env   # configure WAAS_CLIENT_ID e WAAS_CLIENT_SECRET
flutter run

Plataformas #

Plataforma Suporte
Android
iOS
Web ❌ (usa dart:io)

Requisitos #

  • Flutter SDK >=3.0.0 <4.0.0
  • webview_flutter: ^4.13.0

Licença #

MIT — Copyright (c) 2025 Warren Brasil

0
likes
0
points
209
downloads

Publisher

verified publisherpubdev.warren.com.br

Weekly Downloads

Flutter WebView com bridge WaaS para integrar a experiência WaaS (Wealth as a Service) em aplicativos nativos iOS e Android.

Homepage
Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, webview_flutter, webview_flutter_wkwebview

More

Packages that depend on waas_sdk