Tengo otra forma de hacerlo, a través de la popular biblioteca JS llamada FileSaver
Primero, actualice su ProjectFolder/web/index.html
archivo para incluir la biblioteca y defina la webSaveAs
función de esta manera:
...
<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>
...
Entonces puede llamar a esta función desde el código Dart de la siguiente manera:
import 'dart:js' as js;
import 'dart:html' as html;
...
js.context.callMethod("webSaveAs", [html.Blob([bytes], "test.txt"])