Có một cách khác để làm điều đó, thông qua thư viện JS phổ biến có tên là FileSaver
Đầu tiên, cập nhật ProjectFolder/web/index.html
tệp của bạn để bao gồm thư viện và xác định webSaveAs
chức năng như vậy:
...
<script src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/1.3.8/FileSaver.min.js">
</script>
<script>
function webSaveAs(blob, name) {
saveAs(blob, name);
}
</script>
<script src="main.dart.js" type="application/javascript"></script>
...
Sau đó, bạn có thể gọi hàm này từ mã Dart như vậy:
import 'dart:js' as js;
import 'dart:html' as html;
...
js.context.callMethod("webSaveAs", [html.Blob([bytes], "test.txt"])