Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 附在flatter plugin Share.Share文件上的图像有时会消失。如何解决这个问题?_Image_Flutter_Share - Fatal编程技术网

Image 附在flatter plugin Share.Share文件上的图像有时会消失。如何解决这个问题?

Image 附在flatter plugin Share.Share文件上的图像有时会消失。如何解决这个问题?,image,flutter,share,Image,Flutter,Share,这是我从URL共享图像的代码。因此,它首先下载图像,然后使用共享表附加图像 static Future<Null> onShareUrl({BuildContext context, String url, String title, String caption}) async { final RenderBox box = context.findRenderObject(); if (Platform.isAndroid) { var respo

这是我从URL共享图像的代码。因此,它首先下载图像,然后使用共享表附加图像

  static Future<Null> onShareUrl({BuildContext context, String url, String title, String caption}) async {
    final RenderBox box = context.findRenderObject();
    if (Platform.isAndroid) {
      var response = await Network.getImage(url);
      final documentDirectory = (await getExternalStorageDirectory()).path;
      File imgFile = new File('$documentDirectory/attachment.png');
      imgFile.deleteSync();
      imgFile.writeAsBytesSync(response.bodyBytes);

      await Share.shareFiles(["$documentDirectory/attachment.png"], mimeTypes: ["image/png"], subject: title, text: caption, sharePositionOrigin: box.localToGlobal(Offset.zero) & box.size);
    }
  }
有一次,它生成了带有正确附件的共享表:

但另一次,结果是共享表没有附件:

准确地说,当共享表刚刚打开,并且仍然加载所有可能处理附件的应用程序时,它会显示附件。但几秒钟后,当下面的应用程序完全加载时,附件就不见了。这意味着附件已成功下载并附加,但在加载共享表时发生了一些情况,几秒钟后附件就消失了

这似乎是随机发生的。这种消失并非始终如一

这只需在同一会话中点击相同的操作按钮即可实现。代码上没有任何更改。我可以确认,始终从服务器成功检索图像

为什么会这样?如何防止附件消失?起初,我认为这是因为IO试图覆盖现有文件时出现了一些问题,所以我添加了deleteSync调用。但这个问题显然仍然存在

onShareUrl(context: context, url: imageUrl, title: "This is the image", caption: "Please check this image");