Flutter SDK
Official Flutter SDK for cross-platform mobile apps (iOS + Android).
Requirements
Section titled “Requirements”- Flutter 3.0+
- Dart 2.17+
Installation
Section titled “Installation”Add to your pubspec.yaml:
dependencies: uchara_sdk: ^1.0.0Then run:
flutter pub getVisitor SDK
Section titled “Visitor SDK”import 'package:flutter/material.dart';import 'package:uchara_sdk/uchara_sdk.dart';
class ChatPage extends StatefulWidget { @override State<ChatPage> createState() => _ChatPageState();}
class _ChatPageState extends State<ChatPage> { late VisitorSDK visitor; final List<Message> messages = []; final TextEditingController _input = TextEditingController();
@override void initState() { super.initState();
visitor = VisitorSDK(VisitorConfig( apiUrl: 'https://api.uchara.com', widgetToken: 'wgt_your_token', ));
_initChat(); }
Future<void> _initChat() async { await visitor.init();
// Listen to real-time events visitor.events?.listen((event) { if (event is MessageNewEvent) { setState(() => messages.add(event.message)); } });
// Get or start conversation final conv = await visitor.getActiveConversation() ?? await visitor.startConversation(message: 'Hello!');
final loaded = await visitor.getMessages(conv.id); setState(() { messages.clear(); messages.addAll(loaded); }); }
Future<void> _send() async { final convId = visitor.activeConversationId; if (convId == null || _input.text.isEmpty) return;
final msg = await visitor.sendMessage( convId, content: _input.text, ); setState(() => messages.add(msg)); _input.clear(); }
@override void dispose() { visitor.dispose(); super.dispose(); }
@override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: const Text('Chat Support')), body: Column( children: [ Expanded( child: ListView.builder( itemCount: messages.length, itemBuilder: (_, i) => ListTile( title: Text(messages[i].content ?? ''), subtitle: Text(messages[i].senderType), ), ), ), Row( children: [ Expanded(child: TextField(controller: _input)), IconButton(icon: const Icon(Icons.send), onPressed: _send), ], ), ], ), ); }}