shareFiles static method

Future<void> shareFiles(
  1. List<String> paths, {
  2. List<String>? mimeTypes,
  3. String? subject,
  4. String? text,
  5. Rect? sharePositionOrigin,
})

Summons the platform's share sheet to share multiple files.

Wraps the platform's native share dialog. Can share a file. It uses the ACTION_SEND Intent on Android and UIActivityViewController on iOS.

The optional sharePositionOrigin parameter can be used to specify a global origin rect for the share sheet to popover from on iPads. It has no effect on non-iPads.

May throw PlatformException or FormatException from MethodChannel.

Implementation

static Future<void> shareFiles(
  List<String> paths, {
  List<String>? mimeTypes,
  String? subject,
  String? text,
  Rect? sharePositionOrigin,
}) {
  assert(paths != null);
  assert(paths.isNotEmpty);
  assert(paths.every((element) => element != null && element.isNotEmpty));
  final Map<String, dynamic> params = <String, dynamic>{
    'paths': paths,
    'mimeTypes': mimeTypes ??
        paths.map((String path) => _mimeTypeForPath(path)).toList(),
  };

  if (subject != null) params['subject'] = subject;
  if (text != null) params['text'] = text;

  if (sharePositionOrigin != null) {
    params['originX'] = sharePositionOrigin.left;
    params['originY'] = sharePositionOrigin.top;
    params['originWidth'] = sharePositionOrigin.width;
    params['originHeight'] = sharePositionOrigin.height;
  }

  return channel.invokeMethod('shareFiles', params);
}