user_tracking_plugin 0.0.1
user_tracking_plugin: ^0.0.1 copied to clipboard
A flutter plugin to send user's current screen to a socket.
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:user_tracking_plugin/user_tracking_plugin.dart';
import 'package:user_tracking_plugin_example/screen2.dart';
import 'package:user_tracking_plugin_example/screen3.dart';
import 'package:user_tracking_plugin_example/screen4.dart';
void main() => runApp(MyApp());
final RouteObserver<PageRoute> routeObserver = RouteObserver<PageRoute>();
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
SetSocketUrl(socketLink: "wss://echo.websocket.events", child: Screen1(),);
return MaterialApp(
debugShowCheckedModeBanner: false,
theme: ThemeData(),
navigatorObservers: [routeObserver],
home: RouteAwareWidget(routeObserver, 'screen1', child: Screen1()),
routes: {
'screen2': (context) => RouteAwareWidget(routeObserver, 'screen2', child: Screen2()),
'screen3': (context) => RouteAwareWidget(routeObserver, 'screen3', child: Screen3()),
'screen4': (context) => RouteAwareWidget(routeObserver, 'screen4', child: Screen4()),
},
);
}
}
class Screen1 extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('Screen 1'),
SizedBox(height: 30.0),
ElevatedButton(
child: Text('Screen 2'),
onPressed: () => Navigator.of(context).pushNamed('screen2'),
),
ElevatedButton(
child: Text('Screen 3'),
onPressed: () => Navigator.of(context).pushNamed('screen3'),
),
ElevatedButton(
child: Text('Screen 4'),
onPressed: () => Navigator.of(context).pushNamed('screen4'),
),
],
),
),
);
}
}