survicate_sdk 5.1.0 copy "survicate_sdk: ^5.1.0" to clipboard
survicate_sdk: ^5.1.0 copied to clipboard

Official plugin for Survicate SDK integration with Flutter. Effortlessly collect user feedback and gain insights to improve your mobile app.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:survicate_sdk/survicate_sdk.dart';
import 'package:survicate_sdk/user_trait.dart';

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

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

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

class _MyAppState extends State<MyApp> {
  final listener = SurvicateEventListener(
    onSurveyDisplayed: (SurveyDisplayedEvent event) {
      // onSurveyDisplayed
    },
    onQuestionAnswered: (QuestionAnsweredEvent event) {
      // onQuestionAnswered
    },
    onSurveyClosed: (SurveyClosedEvent event) {
      // onSurveyClosed
    },
    onSurveyCompleted: (SurveyCompletedEvent event) {
      // onSurveyCompleted
    },
  );

  @override
  void initState() {
    super.initState();
    SurvicateSdk.initializeSdk();
    SurvicateSdk.addSurvicateEventListener(listener);
  }

  @override
  void dispose() {
    SurvicateSdk.removeSurvicateEventListener(listener);
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body: Column(
          mainAxisAlignment: MainAxisAlignment.start,
          crossAxisAlignment: CrossAxisAlignment.stretch,
          children: [
            TextButton(
              child: const Text('Enter Screen: Home'),
              onPressed: () {
                SurvicateSdk.enterScreen('Home');
              },
            ),
            TextButton(
              child: const Text('Leave Screen: Home'),
              onPressed: () {
                SurvicateSdk.leaveScreen('Home');
              },
            ),
            TextButton(
              child: const Text('Invoke Event: Event'),
              onPressed: () {
                SurvicateSdk.invokeEvent('Event');
              },
            ),
            TextButton(
              child: const Text('Invoke Event with Properties: Event'),
              onPressed: () {
                Map<String, String> properties = {
                  'property1': 'value1',
                  'property2': 'value2',
                };
                SurvicateSdk.invokeEvent('Event', eventProperties: properties);
              },
            ),
            TextButton(
              child: const Text('Set User Trait'),
              onPressed: () {
                UserTrait trait = UserTrait.string('Name', 'Jane Doe');
                SurvicateSdk.setUserTrait(trait);
              },
            ),
            TextButton(
              child: const Text('Set User Traits'),
              onPressed: () {
                List<UserTrait> traits = [
                  UserTrait.string("name", "Jane Doe"),
                  UserTrait.num("age", 25),
                  UserTrait.bool("isPremium", true),
                  UserTrait.dateTime("lastLogin", DateTime.now()),
                ];
                SurvicateSdk.setUserTraits(traits);
              },
            ),
            TextButton(
              child: const Text('Reset'),
              onPressed: () {
                SurvicateSdk.reset();
              },
            ),
          ],
        ),
      ),
    );
  }
}
5
likes
0
points
8.84k
downloads

Publisher

verified publishersurvicate.com

Weekly Downloads

Official plugin for Survicate SDK integration with Flutter. Effortlessly collect user feedback and gain insights to improve your mobile app.

Homepage
Repository (GitHub)
View/report issues

Documentation

Documentation

License

unknown (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on survicate_sdk