appvue_plugin 0.0.1
appvue_plugin: ^0.0.1 copied to clipboard
Flutter plugin for AppVue SDK integration, supporting install tracking, event reporting, and deep linking.
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:appvue_plugin/appvue_plugin.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
String _installData = 'Unknown';
String _wakeupData = 'No wakeup data';
@override
void initState() {
super.initState();
_initSDK();
_listenWakeupData();
}
Future<void> _initSDK() async {
try {
await AppvuePlugin.initializeSDK();
final installData = await AppvuePlugin.getInstallData();
setState(() {
_installData = 'Channel: ${installData.channel}\nReferrer: ${installData.referrer}';
});
} catch (e) {
setState(() {
_installData = 'Error: $e';
});
}
}
void _listenWakeupData() {
AppvuePlugin.wakeupDataStream.listen((data) {
setState(() {
_wakeupData = 'Channel: ${data.channel}\nReferrer: ${data.referrer}';
});
});
}
Future<void> _reportEvent() async {
try {
await AppvuePlugin.reportEvent('button_click', 1);
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('Event reported!')),
);
} catch (e) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('Error: $e')),
);
}
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('AppVue Plugin Example'),
),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const Text(
'Install Data:',
style: TextStyle(fontWeight: FontWeight.bold),
),
Text(_installData),
const SizedBox(height: 20),
const Text(
'Wakeup Data:',
style: TextStyle(fontWeight: FontWeight.bold),
),
Text(_wakeupData),
const SizedBox(height: 20),
ElevatedButton(
onPressed: _reportEvent,
child: const Text('Report Event'),
),
],
),
),
),
);
}
}