genius_sdk 1.0.8
genius_sdk: ^1.0.8 copied to clipboard
A flutter plugin for GeniusSDK
example/lib/main.dart
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:genius_sdk/genius_sdk.dart';
void main() {
startApp();
}
void startApp() async {
WidgetsFlutterBinding.ensureInitialized();
final geniusSdk = GeniusSdk();
try {
var initialData = await geniusSdk.connect();
print(initialData);
print(initialData["deviceName"]);
// final data = await geniusSdk.getDynamicLinkData();
await geniusSdk.dynamicLinkInit((data) {
print("Dynamic Link callback triggered");
print(data);
print(geniusSdk.dynamicLinkData);
});
// print("dynamic link in main: ${data}");
} on PlatformException {
// ignore: avoid_print
print("Failed to connect to GeniusSDK");
}
runApp(MyApp(
geniusSdk: geniusSdk,
));
}
class MyApp extends StatefulWidget {
final GeniusSdk geniusSdk;
const MyApp({super.key, required this.geniusSdk});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
final Map<String, StreamSubscription<Map<String, dynamic>>> subscriptions =
{};
@override
void initState() {
super.initState();
// Listen for events
subscriptions[GeniusEvents.firstEvent] =
widget.geniusSdk.onEvent.listen((event) {
if (event['eventName'] == GeniusEvents.firstEvent) {
print('First event triggered: ${event['params']}');
}
});
}
@override
void dispose() {
// Clean up all subscriptions
for (var sub in subscriptions.values) {
sub.cancel();
}
super.dispose();
}
@override
Widget build(BuildContext context) {
final geniusSdk = GeniusSdk();
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: Center(
child: Column(mainAxisAlignment: MainAxisAlignment.center, children: [
ElevatedButton(
onPressed: () async {
print(geniusSdk.buildDynamicLink(
"https://some-domain.com", // Put your domain here
{"someData": "theData", "leagueId": 12356543}));
await geniusSdk.logEvent(
EventName.custom('Custom Event flutter'),
{"userName": "Bob"});
},
child: const Text("Log Event")),
const SizedBox(height: 20),
ElevatedButton(
onPressed: () async {
// Trigger the test event
await geniusSdk.triggerTestEvent();
print("Test event triggered!");
},
child: const Text("Trigger Test Event"),
)
]),
),
),
);
}
}