| import 'dart:js_interop'; |
| import 'dart:typed_data'; |
| |
| import 'package:web/web.dart' as web; |
| |
| /// Triggers a browser file download by creating a temporary anchor element. |
| void triggerBrowserDownload(Uint8List bytes, String filename) { |
| final jsArray = [bytes.toJS].toJS; |
| final blob = web.Blob(jsArray, web.BlobPropertyBag(type: 'application/zip')); |
| final url = web.URL.createObjectURL(blob); |
| final anchor = web.document.createElement('a') as web.HTMLAnchorElement; |
| anchor.href = url; |
| anchor.download = filename; |
| web.document.body!.appendChild(anchor); |
| anchor.click(); |
| web.document.body!.removeChild(anchor); |
| web.URL.revokeObjectURL(url); |
| } |