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

VWO Insights helps you analyze user behavior in your application based on interactions such as application launch, taps, scrolls, and flings.

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
140
points
260
downloads

Publisher

verified publishervwo.com

Weekly Downloads

VWO Insights helps you analyze user behavior in your application based on interactions such as application launch, taps, scrolls, and flings.

Homepage

Documentation

API reference

License

Apache-2.0 (license)

Dependencies

flutter, plugin_platform_interface, visibility_detector

More

Packages that depend on vwo_insights_flutter_sdk