ユーザーデータからファイルを生成するフラッターWebアプリを作成しています。そして、出力ファイルをダウンロードするオプションがあります。
しかし、フラッターウェブで機能するオプション/パッケージを見つけることができません:(
誰かが私を助けてくれますか?
rl_launcher_web でパッケージurl_launcherを使用できます
その後、あなたは行うことができます:
launch("data:application/octet-stream;base64,${base64Encode(yourFileBytes)}")
編集:これを行うとプラグインは必要ありません
download.Dart:
import 'Dart:convert';
// ignore: avoid_web_libraries_in_flutter
import 'Dart:html';
void download(
List<int> bytes, {
String downloadName,
}) {
// Encode our file in base64
final _base64 = base64Encode(bytes);
// Create the link with the file
final anchor =
AnchorElement(href: 'data:application/octet-stream;base64,$_base64')
..target = 'blank';
// add the name
if (downloadName != null) {
anchor.download = downloadName;
}
// trigger download
document.body.append(anchor);
anchor.click();
anchor.remove();
return;
}
empty_download.Dart:
void download(
List<int> bytes, {
String downloadName,
}) {
print('I do nothing');
}
インポートして使用:
import 'empty_download.Dart'
if (Dart.library.html) 'download.Dart';
void main () {
download('I am a test file'.codeUnits, // takes bytes
downloadName: 'test.txt');
}