Existe outra maneira de fazer isso, através da popular biblioteca JS chamada FileSaver
Primeiro, atualize seu ProjectFolder/web/index.html
arquivo para incluir a biblioteca e defina a webSaveAs
função da seguinte maneira:
...
<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>
...
Então você pode chamar essa função do código Dart da seguinte forma:
import 'dart:js' as js;
import 'dart:html' as html;
...
js.context.callMethod("webSaveAs", [html.Blob([bytes], "test.txt"])