shareOpen method

  1. @override
Future<void> shareOpen({
  1. String? text,
  2. String? url,
  3. String? image,
  4. List<String>? platforms,
})
override

Implementation

@override
Future<void> shareOpen(
    {String? text,
    String? url,
    String? image,
    List<String>? platforms}) async {
  String shareContent = text ?? '';
  if (url != null && url.isNotEmpty) {
    shareContent = shareContent.isEmpty ? url : '$shareContent\n$url';
  }

  if (image != null && image.startsWith('http')) {
    shareContent = shareContent.isEmpty ? image : '$shareContent\n$image';
    await Share.share(shareContent);
  } else if (image != null) {
    try {
      final file = io.File(image);
      if (await file.exists()) {
        await Share.shareXFiles([XFile(file.path)], text: shareContent);
      } else {
        await Share.share(shareContent);
      }
    } catch (e) {
      await Share.share(shareContent);
    }
  } else {
    await Share.share(shareContent);
  }
}