我正在从名为rows
的List<List<dynamic>>
生成一个 csv 文件,如下所示......
String csv = const ListToCsvConverter().convert(rows);
然后,如果我在移动设备(Android 或 IOS)上,我会将文件发送到电子邮件,如果我在网络上,我会使用AnchorElement
将其下载到设备,这是import 'dart: html' as html
的一部分,如下所示:
if (_prefs.platform == 'isWeb')
{
html.AnchorElement(href: "data:text/plain;charset=utf-8,$csv")
..setAttribute("download", "report.csv")
..click();
} else {
//To write csv as a file in a path and send it using FlutterEmailSender
}
它可以在Web上运行,但是当我尝试在Android或IOS中编译时会出现错误:
:错误:未找到:"dart:html">将"dart:html"导入为html; ^
:错误:找不到方法:"锚元素"。 .html。AnchorElement(href: "data:text/plain;字符集=UTF-8,$csv")
我认为这是因为 IOS 和 Android 不支持 dart:html,所以我的问题是:
我可以使用哪些其他软件包/函数在 Web 上下载 CSV 文件,而不会生成编译错误(跨平台)?
作为替代解决方案,我是否可以使用某些命令,以便小部件仅在 Web 环境中运行时使用
dart:html
?
你可以改用这个:
import 'package:universal_html/html.dart' as html hide Text;