flutter_social_share_plus 0.0.1 copy "flutter_social_share_plus: ^0.0.1" to clipboard
flutter_social_share_plus: ^0.0.1 copied to clipboard

Share content to Instagram and Facebook from your Flutter app. Supports feed posts, stories, reels, and direct messages.

example/lib/main.dart

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

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

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Social Share Plus',
      theme: ThemeData(
        colorSchemeSeed: Colors.deepPurple,
        useMaterial3: true,
      ),
      home: const ShareDemoPage(),
    );
  }
}

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

  @override
  State<ShareDemoPage> createState() => _ShareDemoPageState();
}

class _ShareDemoPageState extends State<ShareDemoPage> {
  Map<SocialPlatform, bool> _installedApps = {};
  String _status = 'Ready';

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

  Future<void> _checkInstalledApps() async {
    final apps = await SocialSharePlus.getInstalledApps();
    if (!mounted) return;
    setState(() => _installedApps = apps);
  }

  void _showResult(ShareResult result) {
    final message = switch (result) {
      ShareSuccess() => 'Shared successfully!',
      ShareError(:final message) => 'Error: $message',
      ShareAppNotInstalled() => 'App not installed',
      ShareCancelled() => 'Cancelled',
    };
    if (!mounted) return;
    setState(() => _status = message);
    ScaffoldMessenger.of(context)
      ..hideCurrentSnackBar()
      ..showSnackBar(SnackBar(content: Text(message)));
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Social Share Plus')),
      body: ListView(
        padding: const EdgeInsets.all(16),
        children: [
          Text('Status: $_status', style: Theme.of(context).textTheme.bodySmall),
          const SizedBox(height: 8),
          if (_installedApps.isNotEmpty) ...[
            Text(
              'Installed: ${_installedApps.entries.where((e) => e.value).map((e) => e.key.name).join(', ')}',
              style: Theme.of(context).textTheme.bodySmall,
            ),
            const SizedBox(height: 16),
          ],

          // Instagram
          _SectionHeader('Instagram'),
          _ShareButton(
            label: 'Instagram Direct',
            icon: Icons.send,
            onPressed: () async {
              final result = await SocialSharePlus.instagramDirect(
                message: 'Hello from Flutter Social Share Plus!',
              );
              _showResult(result);
            },
          ),
          _ShareButton(
            label: 'Instagram Story',
            icon: Icons.auto_stories,
            onPressed: () async {
              final result = await SocialSharePlus.instagramStory(
                config: StoryConfig(
                  appId: 'YOUR_FACEBOOK_APP_ID',
                  backgroundTopColor: '#FF5733',
                  backgroundBottomColor: '#3366FF',
                ),
              );
              _showResult(result);
            },
          ),

          const SizedBox(height: 16),

          // Facebook
          _SectionHeader('Facebook'),
          _ShareButton(
            label: 'Facebook Story',
            icon: Icons.auto_stories,
            onPressed: () async {
              final result = await SocialSharePlus.facebookStory(
                config: StoryConfig(
                  appId: 'YOUR_FACEBOOK_APP_ID',
                  backgroundTopColor: '#1877F2',
                  backgroundBottomColor: '#0D47A1',
                ),
              );
              _showResult(result);
            },
          ),
        ],
      ),
    );
  }
}

class _SectionHeader extends StatelessWidget {
  const _SectionHeader(this.title);
  final String title;

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.only(bottom: 8, top: 8),
      child: Text(title, style: Theme.of(context).textTheme.titleMedium),
    );
  }
}

class _ShareButton extends StatelessWidget {
  const _ShareButton({
    required this.label,
    required this.icon,
    required this.onPressed,
  });

  final String label;
  final IconData icon;
  final VoidCallback onPressed;

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.only(bottom: 8),
      child: FilledButton.icon(
        onPressed: onPressed,
        icon: Icon(icon),
        label: Text(label),
      ),
    );
  }
}
3
likes
0
points
188
downloads

Publisher

verified publishertakzobye.com

Weekly Downloads

Share content to Instagram and Facebook from your Flutter app. Supports feed posts, stories, reels, and direct messages.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on flutter_social_share_plus

Packages that implement flutter_social_share_plus