微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Flutter Web 下载文件在移动浏览器中不起作用

如何解决Flutter Web 下载文件在移动浏览器中不起作用

我正在创建Flutter web,用于下载图像。下载或保存功能仅在桌面功能。移动浏览器无法下载或保存图片

这是我的代码

未来的 getWidgetimage() 异步 {

try {
  RenderRepaintBoundary boundary =
      globalKey.currentContext.findRenderObject();
  ui.Image image = await boundary.toImage(pixelRatio: 3.0);
  ByteData byteData =
   await image.toByteData(format: ui.ImageByteFormat.png);
  var pngBytes = byteData.buffer.asUint8List();
  var bs64 = base64Encode(pngBytes);
  debugPrint(bs64.length.toString());
  print("convert done");

  imageList.add(pngBytes);

 if (kIsWeb) {
    websaveAndLaunchFile(bytes,qrName+'.png');
       } 
     else {
     mobilesaveAndLaunchFile(bytes,qrName+'.png');
       }
    return pngBytes;
 } catch (exception) {
  return null;
 }
}

//websave 包

Future <void> websaveAndLaunchFile (List<int> bytes,String fileName)async {
       
    AnchorElement(
    href: "data:application/octet- 
    stream;charset=ut16le;base64,${base64.encode(bytes)}")
    ..setAttribute("Download",fileName)
    ..click();
 }

//移动保存包

Future<void> mobilesaveAndLaunchFile(List<int> bytes,String fileName)async{

   final path = ( await getExternalStorageDirectory()).path;
   final file = File('$path/$fileName');
   await file.writeAsBytes(bytes,flush: true);
   OpenFile.open('$path/$fileName');
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?