embed_flutter 0.0.19
embed_flutter: ^0.0.19 copied to clipboard
A powerful Flutter SDK that provides a powerful voice-enabled AI-agent functionality with real-time widget tree monitoring for screen context fetching and realtime voice communication.
example/lib/main.dart
import 'package:embed_flutter_example/screens/welcome_screen.dart';
import 'package:embed_flutter_example/screens/home_screen.dart';
import 'package:embed_flutter_example/screens/profile_plans.dart';
import 'package:embed_flutter_example/screens/mo_exclusive.dart';
import 'package:embed_flutter_example/screens/about_screen.dart';
import 'package:flutter/material.dart';
import 'package:embed_flutter/embed_flutter.dart';
void main() {
embedInitialize(
'key_embed_revrag_test_key',
flowName: 'main',
onResult: (success, error) {
print('Embed initialized: success=$success error=$error');
},
);
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return EmbedWidget(
rightPadding: 20,
bottomPadding: 100,
showEmbedWidget: true,
embedButtonDelayMs:4000,
onPermissionStatusChanged: (status) {
print('Permission status changed: $status');
},
enabledRoutes: const {
'main': [
'welcome_screen',
'home_screen',
'profile_plans',
'mo_exclusive',
],
},
child: MaterialApp(
title: 'Embed Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
useMaterial3: true,
),
navigatorObservers: [
EmbedNavigatorObserver(
nameExtractor: (route) {
final name = route.settings.name;
// The home/initial route reports '/' — treat it as the welcome screen.
if (name == null || name == '/') return 'welcome_screen';
return name;
},
),
],
home: const WelcomeScreen(),
onGenerateRoute: (settings) {
final userName = settings.arguments as String? ?? 'Guest';
switch (settings.name) {
case 'home_screen':
return MaterialPageRoute(
builder: (context) => HomeScreen(userName: userName),
settings: settings,
);
case 'profile_plans':
return MaterialPageRoute(
builder: (context) => ProfilePlansScreen(userName: userName),
settings: settings,
);
case 'mo_exclusive':
return MaterialPageRoute(
builder: (context) => MoExclusiveScreen(userName: userName),
settings: settings,
);
case 'about_screen':
return MaterialPageRoute(
builder: (context) => AboutScreen(userName: userName),
settings: settings,
);
default:
return null;
}
},
),
);
}
}