amplitude_engagement_flutter 0.0.4 copy "amplitude_engagement_flutter: ^0.0.4" to clipboard
amplitude_engagement_flutter: ^0.0.4 copied to clipboard

Official Amplitude Engagement Flutter SDK, supporting Android, iOS

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:amplitude_engagement_flutter/amplitude_engagement.dart';
import 'package:amplitude_flutter/amplitude.dart';
import 'package:amplitude_flutter/configuration.dart';
import 'package:amplitude_flutter/constants.dart';
import 'package:amplitude_flutter/default_tracking.dart';

// Global API key configuration
const String amplitudeApiKey = '6dba5c25868be3716e69f525035e33b6';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Amplitude Engagement Flutter Demo',
      theme: ThemeData(primarySwatch: Colors.blue),
      home: const MyHomePage(title: 'Amplitude Engagement Demo'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  late Amplitude analytics;
  late AmplitudeEngagement engagement;

  @override
  void initState() {
    super.initState();
    // _setupAmplitudeEngagement();
    analytics = Amplitude(
      Configuration(
        apiKey: amplitudeApiKey,
        logLevel: LogLevel.debug,
        defaultTracking: DefaultTrackingOptions.all(),
      ),
    );
    engagement = AmplitudeEngagement(
      amplitudeApiKey,
      options: AmplitudeInitOptions(
        logLevel: AmplitudeLogLevel.debug,
        serverZone: AmplitudeServerZone.us,
        // Optional: Set custom URLs for proxy support
        // serverUrl: 'https://your-proxy.com',
        // cdnUrl: 'https://your-cdn.com',
        // mediaUrl: 'https://your-media.com',
        // locale: 'en',
      ),
    );

    engagement.addCallback("test", () {
      debugPrint('Callback Invoked: test');
    });
    engagement.boot(userId: 'user123', deviceId: 'device456');
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text(widget.title)),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.stretch,
          children: [
            const SizedBox(height: 16),
            Wrap(
              spacing: 8,
              runSpacing: 8,
              children: [
                ElevatedButton(
                  onPressed: () => engagement.list(),
                  child: const Text('Refresh Guides'),
                ),
                ElevatedButton(
                  onPressed: () => engagement.screen('home_screen'),
                  child: const Text('Track Screen'),
                ),
                ElevatedButton(
                  onPressed: () => engagement.addCallback('test', () {
                    debugPrint('Callback Invoked: test');
                  }),
                  child: const Text('Add Callback'),
                ),
                ElevatedButton(
                  onPressed: () => engagement.closeAll(),
                  child: const Text('Close All'),
                ),
                ElevatedButton(
                  onPressed: () => engagement.handleURL('https://example.com'),
                  child: const Text('Handle URL'),
                ),
                ElevatedButton(
                  onPressed: () =>
                      engagement.forwardEvent({'event_type': 'test'}),
                  child: const Text('Forward Event'),
                ),
              ],
            ),
          ],
        ),
      ),
    );
  }
}
0
likes
0
points
361
downloads

Publisher

unverified uploader

Weekly Downloads

Official Amplitude Engagement Flutter SDK, supporting Android, iOS

Homepage
Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, logger

More

Packages that depend on amplitude_engagement_flutter

Packages that implement amplitude_engagement_flutter