bemall_sdk 1.1.8 copy "bemall_sdk: ^1.1.8" to clipboard
bemall_sdk: ^1.1.8 copied to clipboard

Flutter SDK for BeMall Promotion and Loyalty Club services.

example/lib/main.dart

import 'dart:async';

import 'package:bemall_sdk/bemall_sdk.dart';
import 'package:flutter/material.dart';

void main() => runApp(const MaterialApp(home: BeMallExample()));

class BeMallExample extends StatefulWidget {
  const BeMallExample({super.key});

  @override
  State<BeMallExample> createState() => _BeMallExampleState();
}

class _BeMallExampleState extends State<BeMallExample> {
  String _status = 'Escolha um serviço';
  StreamSubscription<BeMallSdkEvent>? _subscription;

  @override
  void initState() {
    super.initState();
    _subscription = BeMallSdk.instance.events.listen((event) {
      if (event.type == BeMallSdkEventType.unauthenticated) {
        // O SDK não fecha sozinho: o app decide.
        BeMallSdk.instance.close();
      }
      if (!mounted) return;
      setState(() => _status = 'Evento: ${event.type.name}');
    });
  }

  @override
  void dispose() {
    _subscription?.cancel();
    super.dispose();
  }

  Future<void> _open(BeMallService service) async {
    try {
      await BeMallSdk.instance.initialize(
        service == BeMallService.loyaltyClub
            ? const BeMallSdkConfig.loyaltyClub(
              customerId: 'SEU_TENANT',
              campaignHash: 'SEU_CAMPAIGN_HASH',
              // Sem token, o SDK abre deslogado na home da campanha.
              customerAccessToken: 'TOKEN_DO_USUARIO',
            )
            : const BeMallSdkConfig.promotion(
              customerId: 'SEU_TENANT',
              campaignHash: 'SEU_CAMPAIGN_HASH',
              // Sem token, o SDK abre deslogado (Promotion emite `unauthenticated`).
              customerAccessToken: 'TOKEN_DO_USUARIO',
            ),
        utm: const BeMallUtm(custom: {'canal': 'exemplo'}),
        mktOptIn: 'ask',
        // Barra superior pronta: título, cores e seta de voltar desenhados pelo SDK.
        navBar: const BeMallNavBar(
          title: 'BeMall',
          color: 0xFF0A3D91,
          textColor: 0xFFFFFFFF,
        ),
      );
    } on BeMallSdkException catch (e) {
      if (mounted) setState(() => _status = '${e.code}: ${e.message}');
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('BeMall SDK')),
      body: Center(
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: [
            Text(_status),
            const SizedBox(height: 16),
            ElevatedButton(
              onPressed: () => _open(BeMallService.promotion),
              child: const Text('Abrir Promotion'),
            ),
            ElevatedButton(
              onPressed: () => _open(BeMallService.loyaltyClub),
              child: const Text('Abrir Loyalty Club'),
            ),
          ],
        ),
      ),
    );
  }
}
2
likes
140
points
158
downloads

Documentation

API reference

Publisher

verified publisherbesistemas.com.br

Weekly Downloads

Flutter SDK for BeMall Promotion and Loyalty Club services.

Repository

License

unknown (license)

Dependencies

flutter

More

Packages that depend on bemall_sdk

Packages that implement bemall_sdk