share_extend 2.0.0 copy "share_extend: ^2.0.0" to clipboard
share_extend: ^2.0.0 copied to clipboard

A Flutter plugin for Android and iOS for sharing text, image, video and file with system ui.

Language: English | 中文简体

ShareExtend #

pub package

A Flutter plugin for iOS and Android for sharing text, image, video and file with system ui.

Installation #

First, add share_extend as a dependency in your pubspec.yaml file.

dependencies:
  share_extend: "^2.0.0"
copied to clipboard

iOS #

Add the following key to your info.plist file, located in <project root>/ios/Runner/Info.plist for saving shared images to photo library.

<key>NSPhotoLibraryAddUsageDescription</key>
<string>describe why your app needs access to write photo library</string>
copied to clipboard

Android #

If your project needs read and write permissions for sharing external storage file, please add the following permissions to your AndroidManifest.xml, located in <project root>/android/app/src/main/AndroidManifest.xml

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
copied to clipboard

Import #

import 'package:share_extend/share_extend.dart';
copied to clipboard

Example #


//share text
ShareExtend.share("share text", "text","android share panel title","share subject");

//share image
File f =
    await ImagePicker.pickImage(source: ImageSource.gallery);
ShareExtend.share(f.path, "image");

//share video
File f = await ImagePicker.pickVideo(
        source: ImageSource.gallery);
ShareExtend.share(f.path, "video");

//share file
Directory dir = Platform.isAndroid
    ? await getExternalStorageDirectory()
    : await getApplicationDocumentsDirectory();
File testFile = new File("${dir.path}/flutter/test.txt");
if (!await testFile.exists()) {
  await testFile.create(recursive: true);
  testFile.writeAsStringSync("test for share documents file");
}
ShareExtend.share(testFile.path, "file");

///share multiple images
_shareMultipleImages() async {
  List<Asset> assetList = await MultiImagePicker.pickImages(maxImages: 5);
  var imageList = List<String>();
  for (var asset in assetList) {
    String path =
        await _writeByteToImageFile(await asset.getByteData(quality: 30));
    imageList.add(path);
  }
  ShareExtend.shareMultiple(imageList, "image",subject: "share muti image");
}

Future<String> _writeByteToImageFile(ByteData byteData) async {
  Directory dir = Platform.isAndroid
      ? await getExternalStorageDirectory()
      : await getApplicationDocumentsDirectory();
  File imageFile = new File(
      "${dir.path}/flutter/${DateTime.now().millisecondsSinceEpoch}.png");
  imageFile.createSync(recursive: true);
  imageFile.writeAsBytesSync(byteData.buffer.asUint8List(0));
  return imageFile.path;
}

copied to clipboard
136
likes
150
points
11.3k
downloads

Publisher

unverified uploader

Weekly Downloads

2024.09.08 - 2025.03.23

A Flutter plugin for Android and iOS for sharing text, image, video and file with system ui.

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

flutter, meta

More

Packages that depend on share_extend