ablaevent_flutter 3.1.0 copy "ablaevent_flutter: ^3.1.0" to clipboard
ablaevent_flutter: ^3.1.0 copied to clipboard

Flutter implementation of Posthog client for iOS, Android and Web

example/lib/main.dart

import 'dart:io';

import 'package:flutter/material.dart';
import 'package:ablaevent_flutter/ablaevent_flutter.dart';

void main() {
  /// Wait until the platform channel is properly initialized so we can call
  /// `setContext` during the app initialization.
  WidgetsFlutterBinding.ensureInitialized();

  /// The `context.device.token` is a special property.
  /// When you define it, setting the context again with no token property (ex: `{}`)
  /// has no effect on cleaning up the device token.
  ///
  /// This is used as an example to allow you to set string-based
  /// device tokens, which is the use case when integrating with
  /// Firebase Cloud Messaging (FCM).
  ///
  /// This plugin currently does not support Apple Push Notification service (APNs)
  /// tokens, which are binary structures.
  ///
  /// Aside from this special use case, any other context property that needs
  /// to be defined (or re-defined) can be done.
  Posthog().setContext({
    'device': {
      'token': 'testing',
    }
  });

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    Posthog().screen(
      screenName: 'Example Screen',
    );
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Posthog example app'),
        ),
        body: Column(
          children: <Widget>[
            Spacer(),
            Center(
              child: TextButton(
                child: Text('CAPTURE ACTION WITH POSTHOG'),
                onPressed: () {
                  Posthog().capture(
                    eventName: 'ButtonClicked',
                    properties: {
                      'foo': 'bar',
                      'number': 1337,
                      'clicked': true,
                    },
                  );
                },
              ),
            ),
            Spacer(),
            Center(
              child: TextButton(
                child: Text('Update Context'),
                onPressed: () {
                  Posthog().setContext({'custom': 123});
                },
              ),
            ),
            Spacer(),
            Center(
              child: TextButton(
                child: Text('Clear Context'),
                onPressed: () {
                  Posthog().setContext({});
                },
              ),
            ),
            Spacer(),
            Center(
              child: TextButton(
                child: Text('Disable'),
                onPressed: () async {
                  await Posthog().disable();
                  Posthog().capture(
                      eventName: 'This event will not be logged',
                      properties: {});
                },
              ),
            ),
            Spacer(),
            Center(
              child: TextButton(
                child: Text('Enable'),
                onPressed: () async {
                  await Posthog().enable();
                  Posthog().capture(
                      eventName: 'Enabled capturing events!', properties: {});
                },
              ),
            ),
            Spacer(),
            Center(
              child: TextButton(
                child: Text('Is Feature enabled'),
                onPressed: () async {
                  Posthog().isFeatureEnabled('feature').then((value) {
                    print('Feature enabled: $value');
                  });
                },
              ),
            ),
            Spacer(),
            Center(
              child: TextButton(
                child: Text('Reload feature flag'),
                onPressed: () async {
                  Posthog().reloadFeatureFlags();
                },
              ),
            ),
          ],
        ),
      ),
      navigatorObservers: [
        PosthogObserver(),
      ],
    );
  }
}
1
likes
130
points
27
downloads

Publisher

unverified uploader

Weekly Downloads

Flutter implementation of Posthog client for iOS, Android and Web

Documentation

API reference

License

MIT (license)

Dependencies

flutter, flutter_web_plugins

More

Packages that depend on ablaevent_flutter