plugin_screeb 2.1.9 copy "plugin_screeb: ^2.1.9" to clipboard
plugin_screeb: ^2.1.9 copied to clipboard

Continuous Product Discovery

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:plugin_screeb/plugin_screeb.dart';
import 'dart:developer';

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

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  void initState() {
    super.initState();

    PluginScreeb.initSdk(
      "d227eb5f-6e9f-4c16-ae32-60b8b3b839e8",
      "d227eb5f-6e9f-4c16-ae32-60b8b3b839e8",
      "dev@screeb.app",
      <String, dynamic>{
        'isConnected': false,
        'age': 29,
        'product': 'iPhone 13',
        'email': 'dev@screeb.app',
        'born': DateTime.now(),
      },
      <String, dynamic>{
        "version": "1.0.0",
        "onReady": (dynamic data) {
          log("onReady");
          log(data.toString());
        },
      },
    );
  }

  void _setIdentity(String userId, Map<String, dynamic>? properties) {
    PluginScreeb.setIdentity(userId, properties);
    log("SetIdentity");
  }

  void _visitorProperty(Map<String, dynamic>? properties) {
    PluginScreeb.setProperty(properties);
    log("SetIdentityProperties");
  }

  void _sendAssignGroup(String? groupType, String groupName, Map<String, dynamic>? properties) {
    PluginScreeb.assignGroup(groupType, groupName, properties);
    log("AssignGroup");
  }

  void _sendUnassignGroup(String? groupType, String groupName, Map<String, dynamic>? properties) {
    PluginScreeb.unassignGroup(groupType, groupName, properties);
    log("UnassignGroup");
  }

  void _sendTrackingEvent(String eventId, Map<String, dynamic>? properties) {
    PluginScreeb.trackEvent(eventId, properties);
    log("TrackingEvent");
  }

  void _sendTrackingScreen(String screen, Map<String, dynamic>? properties) {
    PluginScreeb.trackScreen(screen, properties);
    log("TrackingScreen");
  }

  void _startSurvey(String surveyId, bool allowMultiple, Map<String, dynamic>? hooks) {
    PluginScreeb.startSurvey(surveyId, allowMultiple, null, true, hooks);
    log("StartSurvey");
  }

  void _closeSdk() {
    PluginScreeb.closeSdk();
    log("CloseSdk");
  }

  void _resetIdentity() {
    PluginScreeb.resetIdentity();
    log("ResetIdentity");
  }

  void _debug() {
    PluginScreeb.debug();
    log("debug");
  }

  void _debugTargeting() {
    PluginScreeb.debugTargeting();
    log("debugTargeting");
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: const Text('Plugin example app')),
        body: Center(
          child: SingleChildScrollView(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.spaceEvenly,
              children: [
                const Text("Screeb Commands"),
                ElevatedButton(
                  child: const Text('start survey'),
                  onPressed:
                      () => _startSurvey("1b1fe0c4-d41d-4307-9ca0-b0b66cce8cff", true, <String, dynamic>{
                        "version": "1.0.0",
                        "onSurveyShowed": (dynamic data) {
                          print("onSurveyShowed");
                          print(data.toString());
                        },
                        "onQuestionReplied": (dynamic data) {
                          print("onQuestionReplied");
                          print(data.toString());
                        },
                      }),
                ),
                ElevatedButton(
                  child: const Text('set identity'),
                  onPressed:
                      () => _setIdentity('iosflutterId', <String, dynamic>{
                        'isConnected': false,
                        'age': 29,
                        'product': 'iPhone 13',
                      }),
                ),
                ElevatedButton(
                  child: const Text('send visitor property'),
                  onPressed:
                      () =>
                          _visitorProperty(<String, dynamic>{'isConnected': false, 'age': 29, 'product': 'iPhone 13'}),
                ),
                ElevatedButton(child: const Text('assign group'), onPressed: () => _sendAssignGroup(null, "Apple", {})),
                ElevatedButton(
                  child: const Text('unassign group'),
                  onPressed: () => _sendUnassignGroup(null, "Apple", {}),
                ),
                ElevatedButton(
                  child: const Text('send tracking event'),
                  onPressed:
                      () => _sendTrackingEvent("eventId", <String, dynamic>{
                        'isConnected': true,
                        'age': 27,
                        'company': 'Screeb',
                        'technology': 'iOS',
                        'flutterAccount': true,
                      }),
                ),
                ElevatedButton(
                  child: const Text('send tracking screen'),
                  onPressed:
                      () => _sendTrackingScreen("Settings", <String, dynamic>{
                        'isConnected': true,
                        'age': 28,
                        'company': 'Screeb',
                        'technology': 'Android',
                        'flutterAccount': false,
                      }),
                ),
                ElevatedButton(child: const Text('reset Identity'), onPressed: () => _resetIdentity()),
                ElevatedButton(child: const Text('debug'), onPressed: () => _debug()),
                ElevatedButton(child: const Text('debug targeting'), onPressed: () => _debugTargeting()),
              ],
            ),
          ),
        ),
      ),
    );
  }
}
8
likes
140
points
1.31k
downloads

Publisher

unverified uploader

Weekly Downloads

Continuous Product Discovery

Homepage
Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on plugin_screeb