我想知道如何在flutter应用程序中共享文件?
我看到了一些使用Intent和mojo的旧引用,但似乎不再存在.这似乎是我们应该能够以跨平台方式处理的标准功能(显然ios与android之间存在一些差异).
目前共享文件的最佳做法是什么(例如通过电子邮件)?我可以接受的最接近的是UrlLauncher,我可以想象它可以用来为我想要共享的文件启动一个处理程序,但它似乎是一个延伸.
目前没有内置的方法来做到这一点.正如上面提到的Seth Ladd,https://github.com/flutter/flutter/issues/7111正在跟踪这一过程.
目前,您必须使用Objective-C或Java编写必要的共享代码,并使用https://flutter.io/platform-services中记录的平台服务模型从您的Dart调用它,并显示在https://中github.com/flutter/flutter/tree/master/examples/hello_services.
您可以使用EsysFlutterShare插件。在1.0.0版中,您可以共享任何喜欢的文件,并且可以在iOS和Android上使用。
只需将其放在您的pubspec.yaml中:
dependencies: esys_flutter_share: ^1.0.0
导入库:
import 'package:esys_flutter_share/esys_flutter_share.dart';
共享文件:
final ByteData bytes = await rootBundle.load('assets/image1.png'); await Share.file('esys image', 'esys.png', bytes.buffer.asUint8List(), 'image/png');
您需要隐藏标题,文件名,文件字节和mime类型。