whatsapp_share_improved 2.0.3 copy "whatsapp_share_improved: ^2.0.3" to clipboard
whatsapp_share_improved: ^2.0.3 copied to clipboard

PlatformAndroid

Fork from whatsapp_share with namespace and fix AGP 7+ and y embedding v2

example/lib/main.dart

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

import 'package:flutter/material.dart';
import 'package:whatsapp_share_improved/whatsapp_share_improved.dart';
import 'package:image_picker/image_picker.dart';
import 'package:path_provider/path_provider.dart';
import 'package:screenshot/screenshot.dart';

void main() => runApp(MyApp());

// ignore: must_be_immutable
class MyApp extends StatelessWidget {
  final _controller = ScreenshotController();
  File? _image;

  MyApp({super.key});

  Future<void> share() async {
    await WhatsappShareImproved.share(
      text: 'Example share text',
      linkUrl: 'https://flutter.dev/',
      phone: '911234567890',
    );
  }

  Future<void> shareFile() async {
    await getImage();
    Directory? directory;
    if (Platform.isAndroid) {
      directory = await getExternalStorageDirectory();
    } else {
      directory = await getApplicationDocumentsDirectory();
    }
    debugPrint('${directory?.path} / ${_image?.path}');

    await WhatsappShareImproved.shareFile(
      phone: '911234567890',
      filePath: ["${_image?.path}"],
    );
  }

  Future<void> isInstalled() async {
    final val =
        await WhatsappShareImproved.isInstalled(package: Package.whatsapp);
    debugPrint('Whatsapp is installed: $val');
  }

  Future<void> shareScreenShot() async {
    Directory? directory;
    if (Platform.isAndroid) {
      directory = await getExternalStorageDirectory();
    } else {
      directory = await getApplicationDocumentsDirectory();
    }

    final String? localPath = await _controller.captureAndSave(directory!.path);

    await Future.delayed(const Duration(seconds: 1));
    if (localPath == null) {
      log("localPath is null");
    }

    await WhatsappShareImproved.shareFile(
      phone: '911234567890',
      filePath: [localPath!],
    );
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Whatsapp Share'),
        ),
        body: Center(
          child: Screenshot(
            controller: _controller,
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.center,
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                ElevatedButton(
                  onPressed: share,
                  child: const Text('Share text and link'),
                ),
                ElevatedButton(
                  onPressed: shareFile,
                  child: const Text('Share Image'),
                ),
                ElevatedButton(
                  onPressed: shareScreenShot,
                  child: const Text('Share screenshot'),
                ),
                ElevatedButton(
                  onPressed: isInstalled,
                  child: const Text('is Installed'),
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }

  ///Pick Image From gallery using image_picker plugin
  Future getImage() async {
    try {
      XFile? pickedFile =
          // ignore: deprecated_member_use
          await ImagePicker().pickImage(source: ImageSource.gallery);

      if (pickedFile != null) {
        _image = File(pickedFile.path);
      } else {}
    } catch (er) {
      log(er.toString());
    }
  }
}
1
likes
150
points
25
downloads

Publisher

unverified uploader

Weekly Downloads

Fork from whatsapp_share with namespace and fix AGP 7+ and y embedding v2

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on whatsapp_share_improved

Packages that implement whatsapp_share_improved