我在AWS s3上有一个JSON文件。我想制作一个flutter按钮来触发从URL下载该文件。我仔细研究了一下堆栈,找到了下载JSON生成的数据的方法,但不是从URL下载。我确实认为这个很有前景:
强制外部下载url
但我似乎无法让它在颤动中工作。以下是我正在做的尝试使用锚与";下载";属性
首先,我的URL看起来是这样的(这是假的,尽管只是为了公共堆栈问题(
https://myfirmware.s3.amazonaws.com/proxy/version.json
然后我找到了这个答案:
Flutter WEB下载选项
我试过了,但它仍然(在Chrome版本80.0.3987.149(官方版本((64位(中(在浏览器中显示JSON,而不是允许我在第一次点击flutter按钮时直接保存为文件。
我的颤振代码看起来像:
child: RaisedButton(
elevation: 1.0,
onPressed: () =>
downloadFile("https://myfirmware.s3.amazonaws.com/proxy/version.json"),
child: Text("Proxy Config File")),
我的进口是:
import 'package:universal_html/html.dart' as html;
这种方法是:
void downloadFile(String url){
html.AnchorElement anchorElement = new html.AnchorElement();
anchorElement.href = url;
anchorElement.download = 'test.json';
anchorElement.click();
}
我不知道在为网络构建flutter时,如何看到它是如何转换的。但我希望这看起来很像他们在这里提到的:
强制外部下载url
即:
<a href="http://example.com/media.mp3" download="check this out.mp3">Download Your File</a>
您可以在这个用例中使用flaft_downloader插件。使用下载URL和目标目录创建任务以进行存储。
final taskId = await FlutterDownloader.enqueue(
url: downloadUrl,
savedDir: downloadPath,
);
在创建任务之前,请确保初始化FlutterDownloader。
WidgetsFlutterBinding.ensureInitialized();
await FlutterDownloader.initialize();