vwo_insights_flutter_sdk 0.0.2 copy "vwo_insights_flutter_sdk: ^0.0.2" to clipboard
vwo_insights_flutter_sdk: ^0.0.2 copied to clipboard

VWO Mobile Insights SDK for tracking user behavior.

example/lib/main.dart

import 'dart:async';
import 'package:flutter/material.dart';
import 'package:vwo_insights_flutter_sdk/vwo_insights_flutter_sdk.dart';
import 'package:vwo_insights_flutter_sdk_example/Screen3.dart';
import 'package:vwo_insights_flutter_sdk_example/utils/my_navigator_observer.dart';
import './providers/common_provider.dart';
import './screens/profile/profile.dart';
import 'package:provider/provider.dart';
import './Screen1.dart';
import './screens/sorting/sorting_campaign.dart';
import 'demo_screen.dart';
import 'screens/variable/variable_campaign.dart';

const bool useRoutes = true;

void main() {
  if (useRoutes) {
    runApp(const MyApp());
  } else {
    runApp(const MyAppNoRoute());
  }
}

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

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

class _MyAppState extends State<MyApp> {
  late StreamSubscription<int> _streamSubscription;

  @override
  void dispose() {
    _streamSubscription.cancel();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    var app = MaterialApp(
      title: 'Flutter Demo',
      routes: {
        "/": (context) => const Screen1(),
        '/third': (context) => const Screen3(),
        '/demo': (context) => const DemoScreen(),
        '/housing': (context) => const VariableCampaign(),
        '/phone': (context) => const SortingCampaign(),
        '/profile': (context) => const Profile(),
      },
      navigatorObservers: [
        VwoNavigatorObserver(),
        MyNavigatorObserver(),
      ],
    );

    return MultiProvider(
      providers: [ChangeNotifierProvider(create: (_) => CommonProvider())],
      child: app,
    );
  }
}

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

  @override
  State<MyAppNoRoute> createState() => _MyAppNoRoute();
}

class _MyAppNoRoute extends State<MyAppNoRoute> {
  late StreamSubscription<int> _streamSubscription;

  @override
  void dispose() {
    _streamSubscription.cancel();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    var app = const MaterialApp(
      title: 'Flutter Demo No routes',
      home: Screen1(),
    );

    VwoFlutter().screenChanged("/");
    return MultiProvider(
      providers: [ChangeNotifierProvider(create: (_) => CommonProvider())],
      child: app,
    );
  }
}

void showScreen(BuildContext context, String route) {
  if (useRoutes) {
    Navigator.of(context).pushNamed(route);
  } else {
    Widget screen;
    if (route == '/third') {
      screen = const Screen3();
    } else if (route == '/') {
      screen = const Screen1();
    } else if (route == '/demo') {
      screen = const DemoScreen();
    } else if (route == '/housing') {
      screen = const VariableCampaign();
    } else if (route == '/phone') {
      screen = const SortingCampaign();
    } else if (route == '/profile') {
      screen = const Profile();
    } else {
      screen = const Screen1();
    }
    VwoFlutter().screenChanged(route);
    Navigator.push(
      context,
      MaterialPageRoute(
          builder: (context) => screen
      ), // Direct navigation without named routes
    );
  }
}
3
likes
0
pub points
64%
popularity

Publisher

verified publishervwo.com

VWO Mobile Insights SDK for tracking user behavior.

Homepage

License

unknown (license)

Dependencies

flutter, plugin_platform_interface, visibility_detector

More

Packages that depend on vwo_insights_flutter_sdk