web-dev-qa-db-ja.com

Flutter WEBダウンロードオプション

ユーザーデータからファイルを生成するフラッターWebアプリを作成しています。そして、出力ファイルをダウンロードするオプションがあります。

しかし、フラッターウェブで機能するオプション/パッケージを見つけることができません:(

誰かが私を助けてくれますか?

14
Pratik

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');
}
0
pinguinitorawr