join_stories_flutter 0.1.0 copy "join_stories_flutter: ^0.1.0" to clipboard
join_stories_flutter: ^0.1.0 copied to clipboard

JOIN Stories Flutter SDK - Monolithic plugin for JOIN Stories

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:join_stories_flutter/join_stories_flutter.dart';

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

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'JOIN Demo',
      theme: ThemeData(primarySwatch: Colors.blue),
      home: const SplashScreen(),
    );
  }
}

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

  @override
  State<SplashScreen> createState() => _SplashScreenState();
}

class _SplashScreenState extends State<SplashScreen> {
  @override
  void initState() {
    super.initState();
    _initSdk();
  }

  Future<void> _initSdk() async {
    try {
      print('🔵 Flutter: Initializing JOIN SDK...');
      await JOINStories.initialize(
        teamId: 'join-test-sdk-new',
        // apiKey: '<OPTIONAL_API_KEY>',
      );
      print('✅ Flutter: JOIN SDK initialized successfully');
      await Future.delayed(const Duration(seconds: 2));
      if (mounted) {
        print('🔵 Flutter: Navigating to home screen');
        Navigator.of(context).pushReplacement(
          MaterialPageRoute(builder: (_) => const HomeScreen()),
        );
      }
    } catch (e) {
      print('❌ Flutter: Error initializing SDK : $e');
      if (mounted) {
        Navigator.of(context).pushReplacement(
          MaterialPageRoute(builder: (_) => HomeScreen(error: 'SDK Error: $e')),
        );
      }
    }
  }

  @override
  Widget build(BuildContext context) {
    return const Scaffold(
      body: Center(
        child: Text('Initializing SDK...', style: TextStyle(fontSize: 18)),
      ),
    );
  }
}

class HomeScreen extends StatelessWidget {
  final String? error;
  const HomeScreen({super.key, this.error});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('JOIN Home')),
      body: Center(
        child: error != null
            ? Text(error!, style: const TextStyle(color: Colors.red))
            : Column(
                mainAxisAlignment: MainAxisAlignment.center,
                children: [
                  ElevatedButton(
                    onPressed: () async {
                      try {
                        print('🔵 Flutter: Starting player with alias: test-sdk-shopping');
                        await JOINStories.startPlayer(
                          'test-sdk-shopping',
                        );
                        print('✅ Flutter: Player started successfully');
                      } catch (e) {
                        print('❌ Flutter: Error starting player : $e');
                        ScaffoldMessenger.of(context).showSnackBar(
                          SnackBar(content: Text('Error: $e')),
                        );
                      }
                    },
                    child: const Text('Open Story'),
                  ),
                  const SizedBox(height: 20),
                  ElevatedButton(
                    onPressed: () async {
                      try {
                        print('🔵 Flutter: Dismissing player');
                        await JOINStories.dismissPlayer();
                        print('✅ Flutter: Player dismissed successfully');
                      } catch (e) {
                        print('❌ Flutter: Error dismissing player : $e');
                        ScaffoldMessenger.of(context).showSnackBar(
                          SnackBar(content: Text('Error: $e')),
                        );
                      }
                    },
                    child: const Text('Dismiss Player'),
                  ),
                ],
              ),
      ),
    );
  }
}
0
likes
160
points
112
downloads

Publisher

unverified uploader

Weekly Downloads

JOIN Stories Flutter SDK - Monolithic plugin for JOIN Stories

Homepage

Documentation

API reference

License

MIT (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on join_stories_flutter

Packages that implement join_stories_flutter