【问题标题】:How to share multiple files simultaneously in flutter?如何在颤动中同时共享多个文件?
【发布时间】:2020-06-21 04:54:18
【问题描述】:

我是新来的 flutter 。我正在使用 flutter_share 包来共享文件。但现在我想一次共享多个文件。这可能与颤动吗?我正在使用 dio 下载文件和 path_provider 来获取文件路径。 如果有人知道请帮我解决这个问题.....

【问题讨论】:

    标签: flutter


    【解决方案1】:

    你可以使用包https://pub.dev/packages/esys_flutter_share
    完整示例代码https://github.com/esysberlin/esys-flutter-share/blob/master/example/lib/main.dart
    您可以将文件转换为Uint8List,然后与Share.files 共享
    代码sn-p

    Future<void> _shareMixed() async {
        try {
          final ByteData bytes1 = await rootBundle.load('assets/image1.png');
          final ByteData bytes2 = await rootBundle.load('assets/image2.png');
          final ByteData bytes3 = await rootBundle.load('assets/addresses.csv');
    
          await Share.files(
              'esys images',
              {
                'esys.png': bytes1.buffer.asUint8List(),
                'bluedan.png': bytes2.buffer.asUint8List(),
                'addresses.csv': bytes3.buffer.asUint8List(),
              },
              '*/*',
              text: 'My optional text.');
        } catch (e) {
          print('error: $e');
        }
      }
    

    【讨论】:

    • 这正是我所做的。它在 Android 上完美运行。但是在 iOS 上,当我使用它时,文本在 Gmail 等电子邮件应用程序中使用,作为主题、正文和正文内两次。是否应该传递另一个参数?在 i OS WhatsApp 上,图像根本不共享?
    • @chunhunghan 如何与每张图片共享不同的文字?
    • 这个包不支持空安全!
    【解决方案2】:

    此功能很容易使用 gmail 共享,并且图像文件也可以打开。但是社交媒体分享的问题就像 4 到 5 张图片与 whatsup 分享一样。图像列表显示像文件图像。帮助了解确切的解决方案并与 whatsup 图片轻松分享。

    使用下面的代码:

    Future<void> _shareMixed() async {
        try {
          final ByteData bytes1 = await rootBundle.load('assets/images/ic_back.svg');
          final ByteData bytes2 = await rootBundle.load('assets/images/ic_back.svg');
          final ByteData bytes3 = await rootBundle.load('assets/images/ic_back.svg');
    
          await Share.files(
              'esys images',
              {
                'back1.png': bytes1.buffer.asUint8List(),
                'back2.png': bytes2.buffer.asUint8List(),
                'back3.png': bytes3.buffer.asUint8List(),
              },
              '*/*',
              text: 'My optional text.');
    
        } catch (e) {
          print('error: $e');
        }
      }
    

    【讨论】:

      猜你喜欢
      • 2023-01-18
      • 2021-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-17
      • 2018-06-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多