lecle_social_share 0.2.2 copy "lecle_social_share: ^0.2.2" to clipboard
lecle_social_share: ^0.2.2 copied to clipboard

outdated

A Flutter project support share files to social media (Facebook, Instagram, etc.). If you only want to share files on certain platforms, this plugin is made for you.

example/lib/main.dart

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

import 'package:file_picker/file_picker.dart';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
import 'package:lecle_social_share/lecle_social_share.dart';

void main() {
  runApp(
    const MaterialApp(
      home: MyApp(),
      debugShowCheckedModeBanner: false,
    ),
  );
}

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

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

class _MyAppState extends State<MyApp> {
  List<String?>? videoUrls = [];
  List<String?>? imageUrls = [];
  final _picker = ImagePicker();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Social Media share plugin example'),
        centerTitle: true,
      ),
      body: Center(
        child: SingleChildScrollView(
          padding: const EdgeInsets.symmetric(horizontal: 16.0),
          physics: const ClampingScrollPhysics(),
          child: Column(
            mainAxisSize: MainAxisSize.min,
            children: [
              const Padding(
                padding: EdgeInsets.only(top: 24.0, bottom: 8.0),
                child: Text(
                  'Basic share',
                  style: TextStyle(fontSize: 20.0),
                ),
              ),
              ElevatedButton(
                onPressed: () async {
                  var video = await _pickFile(FileType.video);
                  if (video != null) {
                    LecleSocialShare.F.shareVideoToFacebook(
                      filePath: video.paths[0],
                      dstPath: '/LecleSocialShareExample/Facebook/',
                      fileProviderPath: '.social.share.fileprovider',
                    );
                  }
                },
                child: const Text('Share video to facebook'),
              ),
              ElevatedButton(
                onPressed: () async {
                  var image =
                      await _picker.pickImage(source: ImageSource.gallery);
                  if (image != null) {
                    LecleSocialShare.F.sharePhotoToFacebook(
                      filePath: image.path,
                      dstPath: '/LecleSocialShareExample/Facebook/',
                      fileProviderPath: '.social.share.fileprovider',
                    );
                  }
                },
                child: const Text('Share photo to facebook'),
              ),
              ElevatedButton(
                onPressed: () {
                  LecleSocialShare.F.shareFeedContentToFacebook(
                    link: "https://pub.dev",
                    linkName: "pub",
                    hashtag: "flutter_pub",
                  );
                },
                child: const Text('Share feed content to facebook'),
              ),
              ElevatedButton(
                onPressed: () {
                  LecleSocialShare.F.shareLinkContentToFacebook(
                    contentUrl: "https://pub.dev",
                  );
                },
                child: const Text('Share link content to facebook'),
              ),
              const Padding(
                padding: EdgeInsets.only(top: 24.0, bottom: 8.0),
                child: Text(
                  'Media content share',
                  style: TextStyle(fontSize: 20.0),
                ),
              ),
              ElevatedButton(
                onPressed: () async {
                  var videos = await _pickFile(FileType.video,
                      allowMultiple: Platform.isAndroid);

                  LecleSocialShare.F.shareVideoMediaContentToFacebook(
                    videoUrls: videos?.paths,
                    fileProviderPath: '.social.share.fileprovider',
                  );
                },
                child: const Text('Share video media content to facebook'),
              ),
              ElevatedButton(
                onPressed: () async {
                  var images = await _picker.pickMultiImage();

                  LecleSocialShare.F.sharePhotoMediaContentToFacebook(
                    imageUrls: images?.map((image) => image.path).toList(),
                    fileProviderPath: '.social.share.fileprovider',
                  );
                },
                child: const Text('Share photo media content to facebook'),
              ),
              ElevatedButton(
                onPressed: () async {
                  imageUrls = (await _picker.pickMultiImage())
                      ?.map((image) => image.path)
                      .toList();
                  videoUrls =
                      (await _pickFile(FileType.video, allowMultiple: true))
                          ?.paths;

                  LecleSocialShare.F.shareVideoAndPhotoMediaContentToFacebook(
                    imageUrls: imageUrls,
                    videoUrls: videoUrls,
                    fileProviderPath: '.social.share.fileprovider',
                  );
                },
                child: const Text(
                    'Share video and photo media content to facebook'),
              ),
              const Padding(
                padding: EdgeInsets.only(top: 24.0, bottom: 8.0),
                child: Text(
                  'Facebook story share',
                  style: TextStyle(fontSize: 20.0),
                ),
              ),
              ElevatedButton(
                onPressed: () async {
                  var image =
                      await _picker.pickImage(source: ImageSource.gallery);

                  LecleSocialShare.F.shareImageBackgroundAssetToFacebookStory(
                    appId: '3258588111079263',
                    imagePath: image?.path,
                    fileProviderPath: '.social.share.fileprovider',
                  );
                },
                child: const Text(
                    'Share image background asset to facebook story'),
              ),
              ElevatedButton(
                onPressed: () async {
                  var video =
                      await _picker.pickVideo(source: ImageSource.gallery);
                  LecleSocialShare.F.shareVideoBackgroundAssetToFacebookStory(
                    appId: '3258588111079263',
                    videoPath: video?.path,
                    fileProviderPath: '.social.share.fileprovider',
                  );
                },
                child: const Text(
                    'Share video background asset to facebook story'),
              ),
              ElevatedButton(
                onPressed: () async {
                  var image =
                      await _picker.pickImage(source: ImageSource.gallery);
                  LecleSocialShare.F.shareStickerAssetToFacebookStory(
                    appId: '3258588111079263',
                    stickerPath: image?.path,
                    fileProviderPath: '.social.share.fileprovider',
                  );
                },
                child: const Text(
                    'Share sticker background asset to facebook story'),
              ),
              Padding(
                padding: const EdgeInsets.only(top: 24.0, bottom: 8.0),
                child: Text(
                  'Facebook story share ${Platform.isAndroid ? 'using ShareStoryContent' : ''}',
                  style: const TextStyle(fontSize: 20.0),
                ),
              ),
              Visibility(
                visible: Platform.isAndroid,
                child: ElevatedButton(
                  onPressed: () async {
                    var image =
                        await _picker.pickImage(source: ImageSource.gallery);
                    LecleSocialShare.F
                        .shareBitmapImageBackgroundAssetToFacebookStory(
                      imagePath: image?.path,
                      fileProviderPath: '.social.share.fileprovider',
                    );
                  },
                  child: const Text(
                      'Share bitmap image background asset to facebook story'),
                ),
              ),
              Visibility(
                visible: Platform.isAndroid,
                child: ElevatedButton(
                  onPressed: () async {
                    var image =
                        await _picker.pickImage(source: ImageSource.gallery);
                    LecleSocialShare.F
                        .shareImageBackgroundAssetContentToFacebookStory(
                      photoBackgroundAssetPath: image?.path,
                      fileProviderPath: '.social.share.fileprovider',
                    );
                  },
                  child: const Text(
                      'Share photo background asset content to facebook story'),
                ),
              ),
              Visibility(
                visible: Platform.isAndroid,
                child: ElevatedButton(
                  onPressed: () async {
                    var video =
                        await _picker.pickVideo(source: ImageSource.gallery);
                    LecleSocialShare.F
                        .shareVideoBackgroundAssetContentToFacebookStory(
                      videoBackgroundAssetPath: video?.path,
                      fileProviderPath: '.social.share.fileprovider',
                    );
                  },
                  child: const Text(
                      'Share video background asset to facebook story'),
                ),
              ),
              Visibility(
                visible: Platform.isIOS,
                child: ElevatedButton(
                  onPressed: () async {
                    var images = await _picker.pickMultiImage();
                    var stickers = await _picker.pickMultiImage();

                    LecleSocialShare.F
                        .shareBackgroundImageAndStickerToFacebookStoryiOS(
                      photoBackgroundAssetPaths:
                          images?.map((image) => image.path).toList(),
                      stickerAssetPaths:
                          stickers?.map((image) => image.path).toList(),
                      appId: '3258588111079263',
                    );
                  },
                  child: const Text(
                      'Share background image and sticker asset to facebook story iOS'),
                ),
              ),
              const Padding(
                padding: EdgeInsets.only(top: 24.0, bottom: 8.0),
                child: Text(
                  'Facebook reels share',
                  style: TextStyle(fontSize: 20.0),
                ),
              ),
              ElevatedButton(
                onPressed: () async {
                  var sticker =
                      await _picker.pickImage(source: ImageSource.gallery);
                  var video = await _pickFile(FileType.video);

                  LecleSocialShare.F.shareVideoToFacebookReels(
                    filePath: video?.paths[0],
                    fileProviderPath: '.social.share.fileprovider',
                    appId: '3258588111079263',
                    stickerPath: sticker?.path,
                  );
                },
                child: const Text(
                    'Share video asset (and sticker on Android) to facebook reels'),
              ),
              const Padding(
                padding: EdgeInsets.only(top: 24.0, bottom: 8.0),
                child: Text(
                  'Instagram share',
                  style: TextStyle(fontSize: 20.0),
                ),
              ),
              ElevatedButton(
                onPressed: () async {
                  var video =
                      await _picker.pickVideo(source: ImageSource.gallery);

                  if (video != null) {
                    LecleSocialShare.I.shareVideoToInstagram(
                      filePath: video.path,
                      fileProviderPath: '.social.share.fileprovider',
                    );
                  }
                },
                child: const Text('Share video to instagram'),
              ),
              ElevatedButton(
                onPressed: () async {
                  var image =
                      await _picker.pickImage(source: ImageSource.gallery);

                  if (image != null) {
                    LecleSocialShare.I.sharePhotoToInstagram(
                      filePath: image.path,
                      fileProviderPath: '.social.share.fileprovider',
                    );
                  }
                },
                child: const Text('Share photo to instagram'),
              ),
              const Padding(
                padding: EdgeInsets.only(top: 24.0, bottom: 8.0),
                child: Text(
                  'Messenger share',
                  style: TextStyle(fontSize: 20.0),
                ),
              ),
              ElevatedButton(
                onPressed: () async {
                  var video =
                      await _picker.pickVideo(source: ImageSource.gallery);

                  LecleSocialShare.M.shareVideoToMessenger(
                    filePath: video?.path,
                    fileProviderPath: '.social.share.fileprovider',
                  );
                },
                child: const Text('Share video background asset to messenger'),
              ),
              ElevatedButton(
                onPressed: () async {
                  var image =
                      await _picker.pickImage(source: ImageSource.gallery);

                  LecleSocialShare.M.sharePhotoToMessenger(
                    filePath: image?.path,
                    fileProviderPath: '.social.share.fileprovider',
                  );
                },
                child: const Text('Share photo background asset to messenger'),
              ),
              Visibility(
                visible: Platform.isAndroid,
                child: ElevatedButton(
                  onPressed: () async {
                    LecleSocialShare.M.sendMessageToMessengerAndroid(
                      message: 'https://pub.dev',
                    );
                  },
                  child: const Text('Share message to messenger Android'),
                ),
              ),
              Visibility(
                visible: Platform.isIOS,
                child: ElevatedButton(
                  onPressed: () async {
                    LecleSocialShare.M.shareLinkContentToMessengeriOS(
                      contentUrl: 'https://pub.dev',
                    );
                  },
                  child: const Text('Share link content to messenger iOS'),
                ),
              ),
              const Padding(
                padding: EdgeInsets.only(top: 24.0, bottom: 8.0),
                child: Text(
                  'Telegram share',
                  style: TextStyle(fontSize: 20.0),
                ),
              ),
              ElevatedButton(
                onPressed: () async {
                  LecleSocialShare.T.sendMessageToTelegram(
                    message: 'Hello world',
                  );
                },
                child: const Text('Send message to Telegram'),
              ),
              ElevatedButton(
                onPressed: () async {
                  LecleSocialShare.T.openTelegramDirectMessage(
                    username: 'user_name',
                  );
                },
                child: const Text('Open Telegram direct message'),
              ),
              ElevatedButton(
                onPressed: () async {
                  LecleSocialShare.T.openTelegramChannelViaShareLink(
                    inviteLink: 'your_invite_link',
                  );
                },
                child: const Text('Open Telegram group via invite link'),
              ),
              Visibility(
                visible: Platform.isAndroid,
                child: ElevatedButton(
                  onPressed: () async {
                    var video =
                        await _picker.pickVideo(source: ImageSource.gallery);

                    LecleSocialShare.T.shareFileToTelegramAndroid(
                      filePath: video?.path,
                      fileProviderPath: '.social.share.fileprovider',
                      fileType: AssetType.video,
                    );
                  },
                  child: const Text('Share video to Telegram Android'),
                ),
              ),
              Visibility(
                visible: Platform.isAndroid,
                child: ElevatedButton(
                  onPressed: () async {
                    var image =
                        await _picker.pickImage(source: ImageSource.gallery);

                    LecleSocialShare.T.shareFileToTelegramAndroid(
                      filePath: image?.path,
                      fileProviderPath: '.social.share.fileprovider',
                      fileType: AssetType.image,
                    );
                  },
                  child: const Text('Share image to Telegram Android'),
                ),
              ),
              const SizedBox(height: 24.0),
            ],
          ),
        ),
      ),
    );
  }

  Future<FilePickerResult?> _pickFile(FileType type,
      {bool allowMultiple = false}) async {
    switch (type) {
      case FileType.image:
        return await FilePicker.platform
            .pickFiles(allowMultiple: allowMultiple, type: type);
      case FileType.video:
        return await FilePicker.platform
            .pickFiles(allowMultiple: allowMultiple, type: type);
      case FileType.any:
      case FileType.media:
      case FileType.audio:
      case FileType.custom:
        return null;
      default:
        return null;
    }
  }
}
26
likes
0
pub points
82%
popularity

Publisher

verified publisherlecle.vn

A Flutter project support share files to social media (Facebook, Instagram, etc.). If you only want to share files on certain platforms, this plugin is made for you.

Homepage

License

unknown (license)

Dependencies

flutter

More

Packages that depend on lecle_social_share