flutter_linkid_mmp 1.3.12 copy "flutter_linkid_mmp: ^1.3.12" to clipboard
flutter_linkid_mmp: ^1.3.12 copied to clipboard

Airflex.io is a Mobile Marketing Platform that offers tools for analyzing and optimizing user experiences on mobile and web platforms. It features real-time data analytics, audience segmentation, frau [...]

example/lib/main.dart

import 'dart:async';
import 'dart:io';

// import 'package:firebase_core/firebase_core.dart';
// import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_linkid_mmp/flutter_linkid_mmp.dart';
import 'package:flutter_linkid_mmp/user_info.dart';
import 'package:flutter_linkid_mmp_example/common/tracking_helper.dart';
import 'package:flutter_linkid_mmp_example/screens/chat_page.dart';
import 'package:flutter_linkid_mmp_example/screens/contact.dart';
import 'package:go_router/go_router.dart';
import 'package:provider/provider.dart';
import 'common/theme.dart';

// import 'firebase_options.dart';
import 'models/cart.dart';
import 'models/catalog.dart';
import 'screens/cart.dart';
import 'screens/catalog.dart';
import 'screens/login.dart';
import 'package:window_size/window_size.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart';

var fcmToken = "";

void main() {
  Airflex.runZonedGuarded(() async {
    WidgetsFlutterBinding.ensureInitialized();
    runApp(MyApp());
  }, (error, stackTrace) async {});
}

const double windowWidth = 400;
const double windowHeight = 800;

void setupWindow() {
  if (!kIsWeb && (Platform.isWindows || Platform.isLinux || Platform.isMacOS)) {
    WidgetsFlutterBinding.ensureInitialized();
    setWindowTitle('Provider Demo');
    setWindowMinSize(const Size(windowWidth, windowHeight));
    setWindowMaxSize(const Size(windowWidth, windowHeight));
    getCurrentScreen().then((screen) {
      setWindowFrame(Rect.fromCenter(
        center: screen!.frame.center,
        width: windowWidth,
        height: windowHeight,
      ));
    });
  }
}

GoRouter router() {
  return GoRouter(
    initialLocation: '/login',
    routes: [
      GoRoute(
        path: '/login',
        builder: (context, state) => MyLogin(),
      ),
      GoRoute(
        path: '/catalog',
        builder: (context, state) => MyCatalog(),
        routes: [
          GoRoute(
            path: 'cart',
            builder: (context, state) => MyCart(),
          ),
          GoRoute(
            path: 'chat',
            builder: (context, state) => const ChatPage(),
          ),
          GoRoute(
            path: 'contact',
            builder: (context, state) => const ContactScreen(),
          ),
        ],
      ),
    ],
  );
}

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

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

class _MyAppState extends State<MyApp> {
  final _router = router();

  String _url = "";

  // Future<void> initFcm(BuildContext context) async {
  Future<void> init() async {
    Airflex.shared.setDevMode(true);
    await Airflex.shared.initSDK(
      partnerCode: "lynk_id_uat",
      appSecret:
          "b3ccd1c20fa9154a559c304956f99b302027a87b87ad520c1c4dbdd4bb54be7a",
    );
    Airflex.shared.deepLinkHandler(onReceivedDeepLink: (url) {
      print('onReceivedDeepLink in dart $url');
      setState(() {
        _url = url;
      });
    });
    // await initFcm(context);
    Airflex().setUserInfo(UserInfo(deviceToken: fcmToken));
  }

  @override
  void initState() {
    init();
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    // Using MultiProvider is convenient when providing multiple objects.

    print('Main init');
    TrackingHelper.logEvent(event: "StartApp");
    return MultiProvider(
      providers: [
        // In this sample app, CatalogModel never changes, so a simple Provider
        // is sufficient.
        Provider(create: (context) => CatalogModel()),
        // CartModel is implemented as a ChangeNotifier, which calls for the use
        // of ChangeNotifierProvider. Moreover, CartModel depends
        // on CatalogModel, so a ProxyProvider is needed.
        ChangeNotifierProxyProvider<CatalogModel, CartModel>(
          create: (context) => CartModel(),
          update: (context, catalog, cart) {
            if (cart == null) throw ArgumentError.notNull('cart');
            cart.catalog = catalog;
            return cart;
          },
        ),
      ],
      child: MaterialApp(
        builder: (context, child) {
          return Scaffold(
            body: Center(
              child: Text('url: $_url'),
            ),
          );
        },
      ),
    );
  }
}
5
likes
105
points
496
downloads

Publisher

unverified uploader

Weekly Downloads

Airflex.io is a Mobile Marketing Platform that offers tools for analyzing and optimizing user experiences on mobile and web platforms. It features real-time data analytics, audience segmentation, fraud prevention, and AI-driven user personalization to enhance marketing efficiency and campaign effectiveness.

Homepage

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

carousel_slider, chewie, flutter, flutter_keyboard_visibility, flutter_svg, flutter_widget_from_html, html, plugin_platform_interface, url_launcher, url_launcher_ios, visibility_detector, webview_flutter_android, webview_flutter_platform_interface, webview_flutter_wkwebview, win32

More

Packages that depend on flutter_linkid_mmp

Packages that implement flutter_linkid_mmp