share static method

Future<bool> share({
  1. String subject = '',
  2. String title = '',
  3. String text = '',
  4. String url = '',
  5. List<XFile> files = const [],
})

分享

@param subject 主题, 邮箱标题

@param title 标题

@param text 文本

@param url 链接 https://www.apple.com

@param files 文件 XFile('${directory.path}/image1.jpg')...

Implementation

static Future<bool> share({
  String subject = '',
  String title = '',
  String text = '',
  String url = '',
  List<XFile> files = const [],
}) async {
  EasyLoading.show();
  ShareResult shareResult;
  ShareParams shareParams;
  if (files.isNotEmpty) {
    shareParams = ShareParams(files: files);
  } else if (url.isNotEmpty) {
    shareParams = ShareParams(title: title, uri: Uri.parse(url));
  } else {
    shareParams = ShareParams(subject: subject, title: title, text: text);
  }
  //检查是否是iPad
  if (GetPlatform.isIOS && Get.context?.isTablet == true) {
    // 获取屏幕尺寸
    final Size screenSize = MediaQuery.of(Get.context!).size;
    // 自定义固定值的 sharePositionOrigin
    final Rect sharePositionOrigin = Rect.fromCenter(
      center: Offset(screenSize.width / 2, screenSize.height / 2), // 屏幕中心点
      width: screenSize.width / 2, // 屏幕宽度的一半
      height: screenSize.height / 2, // 屏幕高度的一半
    );
    if (files.isNotEmpty) {
      shareParams = ShareParams(files: files);
    } else if (url.isNotEmpty) {
      shareParams = ShareParams(
        title: title,
        uri: Uri.parse(url),
        sharePositionOrigin: sharePositionOrigin,
      );
    } else {
      shareParams = ShareParams(
        subject: subject,
        title: title,
        text: text,
        sharePositionOrigin: sharePositionOrigin,
      );
    }
  }
  shareResult = await SharePlus.instance.share(shareParams);
  EasyLoading.dismiss();
  if (shareResult.status == ShareResultStatus.dismissed) {
    return false;
  }
  Logger.log('Thank you for sharing my website!');
  return true;
}