share static method

Future<UShareResult> share({
  1. String? text,
  2. String? subject,
  3. String? title,
  4. Uri? url,
  5. List<UShareFile> files = const <UShareFile>[],
  6. Rect? origin,
})

Engine call behind UShare.share.

Implementation

static Future<UShareResult> share({String? text, String? subject, String? title, Uri? url, List<UShareFile> files = const <UShareFile>[], Rect? origin}) async {
  if (text == null && url == null && files.isEmpty) return const UShareResult(UShareStatus.unavailable);
  if (kIsWeb) return UShareWeb.share(text: text, subject: subject, title: title, url: url?.toString(), files: files);
  final Object? raw = await _call<Object?>("share", <String, Object?>{
    "text": text,
    "subject": subject,
    "title": title,
    "url": url?.toString(),
    "files": await _files(files),
    if (origin != null) "origin": <double>[origin.left, origin.top, origin.width, origin.height],
  });
  final UShareResult result = _result(raw);
  if (result.status != UShareStatus.unavailable || !Platform.isLinux) return result;
  return _linuxFallback(text: text, url: url, files: files);
}