Flutter 共享图像 - 打开失败:ENOENT(没有这样的文件或目录),null,null)
Flutter share image - open failed: ENOENT (No such file or directory), null, null)
https://pub.dev/packages/share
Dependency:
share: ^0.6.5+2
本地文件目录
Future<String> get _localPath async {
final directory = await getApplicationDocumentsDirectory();
return directory.path;
}
分享功能
Future<void> _onShare(BuildContext context) async {
final RenderBox box = context.findRenderObject();
final path = await _localPath;
await Share.shareFiles(
['$path/assets/images/${widget.imgUrl}.png'],
text: text,
sharePositionOrigin: box.localToGlobal(Offset.zero) & box.size);
}
按钮 - 按下
FlatButton(child: Text('Share'), onPressed: () => _onShare(context)),
我正在使用这个包来分享来自应用程序的图像。我在共享文本时没有问题,但是当我添加共享图像的功能时,我不断收到丢失图像的错误。
我做得对吗?
设法找出问题所在。
看来我需要先保存图片才能引用图片。
final ByteData bytes = await rootBundle
.load('assets/images/${widget.imgUrl}.png');
final Uint8List list = bytes.buffer.asUint8List();
final directory = (await getExternalStorageDirectory()).path;
File imgFile = File('$directory/screenshot.png');
imgFile.writeAsBytesSync(list);
Share.shareFiles(['$directory/screenshot.png'],
sharePositionOrigin: box.localToGlobal(Offset.zero) & box.size);
https://pub.dev/packages/share
Dependency:
share: ^0.6.5+2
本地文件目录
Future<String> get _localPath async {
final directory = await getApplicationDocumentsDirectory();
return directory.path;
}
分享功能
Future<void> _onShare(BuildContext context) async {
final RenderBox box = context.findRenderObject();
final path = await _localPath;
await Share.shareFiles(
['$path/assets/images/${widget.imgUrl}.png'],
text: text,
sharePositionOrigin: box.localToGlobal(Offset.zero) & box.size);
}
按钮 - 按下
FlatButton(child: Text('Share'), onPressed: () => _onShare(context)),
我正在使用这个包来分享来自应用程序的图像。我在共享文本时没有问题,但是当我添加共享图像的功能时,我不断收到丢失图像的错误。 我做得对吗?
设法找出问题所在。 看来我需要先保存图片才能引用图片。
final ByteData bytes = await rootBundle
.load('assets/images/${widget.imgUrl}.png');
final Uint8List list = bytes.buffer.asUint8List();
final directory = (await getExternalStorageDirectory()).path;
File imgFile = File('$directory/screenshot.png');
imgFile.writeAsBytesSync(list);
Share.shareFiles(['$directory/screenshot.png'],
sharePositionOrigin: box.localToGlobal(Offset.zero) & box.size);