plugin_screeb 2.1.7 copy "plugin_screeb: ^2.1.7" to clipboard
plugin_screeb: ^2.1.7 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(
      "082b7590-1621-4f72-8030-731a98cd1448",
      "5c62c145-91f1-4abd-8aa2-63d7847db1e1",
      "flutter_plugin@screeb.app",
      <String, dynamic>{
        'isConnected': false,
        'age': 29,
        'product': 'iPhone 13',
        'email': 'flutter_plugin@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: 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("MainScreen", <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()),
            ],
          ),
        ),
      ),
    );
  }
}
copied to clipboard
8
likes
140
points
824
downloads

Publisher

unverified uploader

Weekly Downloads

2024.09.19 - 2025.04.03

Continuous Product Discovery

Homepage
Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on plugin_screeb