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

A Flutter plugin for sharing text and files via **NATIVE SHARE UI**, supporting Android , iOS, macOS, Windows, Linux.

example/lib/main.dart

import 'package:custom_share/custom_share.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:path_provider/path_provider.dart';
import 'dart:io';

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

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Custom Share Demo',
      theme: ThemeData.light(useMaterial3: true),
      darkTheme: ThemeData.dark(useMaterial3: true),
      themeMode: ThemeMode.system,
      home: const ShareDemoPage(),
    );
  }
}

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

  // Future<String> _createSampleFile() async {
  //   final directory = await getTemporaryDirectory();
  //   final file = File('${directory.path}/sample.txt');
  //   await file.writeAsString('This is a sample file for sharing.');
  //   return file.path;
  // }
  Future<String> _createSampleFile() async {
    final directory = kIsWeb ? null : await (Platform.isMacOS || Platform.isWindows || Platform.isLinux
        ? getApplicationDocumentsDirectory()
        : getTemporaryDirectory());
    final file = File('${directory!.path}/sample.txt');
    await file.writeAsString('This is a sample file for sharing.');
    return file.path;
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Custom Share Demo'),
        centerTitle: true,
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            TextButton(
              onPressed: () async {
                final result = await CustomShare().shareText(text: 'Hello from Custom Share!');
                ScaffoldMessenger.of(context).showSnackBar(
                  SnackBar(content: Text('Share result: $result')),
                );
              },
              child: const Text('Share Text'),
            ),
            TextButton(
              onPressed: () async {
                final filePath = await _createSampleFile();
                final result = await CustomShare().shareFiles(
                  filePaths: [filePath],
                  text: 'Sharing a sample file',
                  mimeType: 'text/plain',
                );
                ScaffoldMessenger.of(context).showSnackBar(
                  SnackBar(content: Text('Share result: $result')),
                );
              },
              child: const Text('Share File'),
            ),
          ],
        ),
      ),
    );
  }
}
2
likes
140
points
18
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter plugin for sharing text and files via **NATIVE SHARE UI**, supporting Android , iOS, macOS, Windows, Linux.

Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on custom_share

Packages that implement custom_share